2017-10-27 2 views
0

Added ein Kind View-Controller wie folgt:Daten senden zurück zur parent von childViewController

// ParentViewController 
if ((self.delegate?.showPopupSymtomDetailViewController(view: viewController, receiver: self)) != nil) 
    { 

    } 

// ChildViewController 
//MARK: PopUpCode 
func popUpAt(parentViewController:UIViewController) 
{ 
    parentViewController.addChildViewController(self) 
    parentViewController.view.addSubview(self.view) 

    self.view.frame = parentViewController.view.frame 
    self.didMove(toParentViewController: parentViewController) 

} 

Wie Daten zu parent zurück zu schicken, bitte leiten.

+0

verwenden Sie den Delegaten, um die Daten zurückzusenden? –

+0

Anzahl der Optionen 1. NotificationCenter 2. KVO/KVC 3. Delegierte und Protokolle –

Antwort

0

Sie könnten zum Beispiel Rückrufe verwenden.

class ParentViewController: UIViewController { 

    if ((self.delegate?.showPopupSymtomDetailViewController(view: viewController, receiver: self)) != nil) { 
    viewController = { YourString in 
      //do here whatever you want in your parent view controller 
     } 
    } 
} 

class ChildViewController: UIViewController { 
    var callbackFunc: ((String) -> Void)? //You can decide if the object you want to send back, I used String but you can change it and even you can send more than one parameters back (String, ThirViewController, Bool)... 

    func popUpAt(parentViewController:UIViewController) { 
      parentViewController.addChildViewController(self) 
      parentViewController.view.addSubview(self.view) 

      self.view.frame = parentViewController.view.frame 
      self.didMove(toParentViewController: parentViewController) 
      callBack(YourString) //Here you pass the data from ChildViewController to ParentViewController 
    } 
} 

Es gibt andere Möglichkeiten, Informationen von ChildViewController an ParentViewController zurückzusenden, aber das hängt von Ihrem Projekt ab. Es ist eine Aktion, die Sie häufig machen werden? Vielleicht brauchen Sie einen Delegierten, um ihn wiederzuverwenden.

Verwandte Themen