Passing data from modal segue to parent

家住魔仙堡 提交于 2019-11-30 04:13:56

Create protocol on Modal ViewController

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

Also declare in you Modal ViewController class

var delegate:ModalViewControllerDelegate!

Include this protocol ModalViewControllerDelegate in ParentViewController

When you are Moving form one viewController to another

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

Here you get your value in ParentViewcontroller

 func sendValue(value: NSString) {

    }

Finally on ModalViewController

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

In the second viewController (the one showed by the segue) declare a variable like

var parentVC : UIViewController?

then when you call segue from parent

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

so you can use

@IBAction func doneClicked(sender: AnyObject) {
    self.parentVC.yourVariable = 0
    self.dismissViewControllerAnimated(true, completion: nil)
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!