我有2个viewController。我从一个viewController过渡到另一个viewController,然后执行操作,当我返回时,我必须将数据传递给第一个viewController,但是前提是要通过闭包做到这一点
例如 ViewController 2中的代码
var string: ((String) -> Void)?
@IBAction func action(_ sender: Any) {
strii?("Lol")
dismiss(animated: true)
}
答案 0 :(得分:4)
首先给闭包起一个更好的名字
var callback : ((String) -> Void)?
在IBAction
中称呼它
@IBAction func action(_ sender: Any) {
callback?("Lol")
dismiss(animated: true)
}
在第一个控制器中,例如prepare(for segue
中分配闭包
let destinationController = segue.destination as! MyGreatController
destinationController.callback = { string in
print(string)
}