Начните с создания protocol
, которое определяет действия / операции, которые вы хотите разрешить ...
protocol DataPassingDelegate {
var someReallyImportantData: String { get set } // Or what ever type
}
В контроллере назначения определите свойство типа protocol
...
class DestinationViewController: UIViewController {
var dataPassingDelegate: DataPassingDelegate?
//...
}
В контроллере вида источника, соблюдайте DataPassingDelegate
protocol
class SourceViewController: UIViewController, DataPassingDelegate {
var someReallyImportantData: String = "" {
didSet {
// Update if you need to or simply
// check the state in viewWillAppear
}
}
//...
}
Перед тем, как нажимать контроллер вида назначения из контроллера источника, установите делегата ...
destinationViewController.dataPassingDelegate = self
present(destinationViewController, animated: true, completion: nil)
Перед тем как открыть контроллер представления назначения, передайте данные обратно ...
dataPassingDelegate = "I have something to say"
dismiss(animated: true, completion: nil)
// or if you're using a navigation controller
// navigationController?.popViewController(animated: true)