Передача данных из модального сегмента в родительский
Я хочу передать данные (например, set var) из модального сегмента в родительский, как я могу это сделать?
Я использую этот код для выхода из модального segue:
@IBAction func doneClicked(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
}
Я не могу использовать segue.destinationViewController
здесь, чтобы передать данные, как я привык делать на push-сегментах.
2 ответов
создать протокол на модальном ViewController
protocol ModalViewControllerDelegate
{
func sendValue(var value : NSString)
}
также объявите в Вас модальный класс ViewController
var delegate:ModalViewControllerDelegate!
включить этот протокол ModalViewControllerDelegate в ParentViewController
при перемещении формы одного 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) объявите переменную как
var parentVC : UIViewController?
тогда, когда вы вызываете segue от родителя
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)
}