Ответ 1
Вы можете передать данные обратно, используя delegate
- Создать
protocol
вChildViewController
- Создать переменную
delegate
вChildViewController
- Продлить
ChildViewController
протокол вMainViewController
- Дайте ссылку на
ChildViewController
изMainViewController
приnavigate
- Определить метод
delegate
вMainViewController
- Затем вы можете вызвать метод
delegate
изChildViewController
пример
В ChildViewController: напишите код ниже...
protocol ChildViewControllerDelegate
{
func childViewControllerResponse(parameter)
}
class ChildViewController:UIViewController
{
var delegate: ChildViewControllerDelegate?
....
}
В MainViewController
// extend 'delegate'
class MainViewController:UIViewController,ChildViewControllerDelegate
{
// Define Delegate Method
func childViewControllerResponse(parameter)
{
.... // self.parameter = parameter
}
}
Есть два варианта:
А) с Сегей
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
let goNext = segue.destinationViewController as ChildViewController
goNext.delegate = self
}
Б) без сега
let goNext = storyboard?.instantiateViewControllerWithIdentifier("childView") as ChildViewController
goNext.delegate = self
self.navigationController?.pushViewController(goNext, animated: true)
Вызов метода
self.delegate?.childViewControllerResponse(parameter)