将数据从模态传递给父项

我想从模态传递数据(例如设置var)到父母,我该怎么做?

我正在使用该代码退出模态segue:

@IBAction func doneClicked(sender: AnyObject) { self.dismissViewControllerAnimated(true, completion: nil) } 

我不能在这里使用segue.destinationViewController来传递数据,因为我曾经在push segues上做过。

在Modal ViewController上创build协议

 protocol ModalViewControllerDelegate { func sendValue(var value : NSString) } 

也在你的Modal ViewController类中声明

 var delegate:ModalViewControllerDelegate! 

在ParentViewController中包含这个协议ModalViewControllerDelegate

当你从一个viewController移动到另一个

  modalVC.delegate=self; self.presentViewController(modalVC, animated: true, completion: nil) 

在这里你可以在ParentViewcontroller中获得你的价值

  func sendValue(value: NSString) { } 

最后在ModalViewController上

 @IBAction func doneClicked(sender: AnyObject) { delegate?.sendValue("value") self.dismissViewControllerAnimated(true, completion: nil) } 

在第二个viewController(由segue显示的)声明一个variables

 var parentVC : UIViewController? 

那么当你从家长调用赛格

 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "yourSegue" { let secondController= segue.destinationViewController as UIViewController secondController.parentVC = self } } 

所以你可以使用

 @IBAction func doneClicked(sender: AnyObject) { self.parentVC.yourVariable = 0 self.dismissViewControllerAnimated(true, completion: nil) }