如何通过闭包将数据从一个ViewController传输到另一个

时间:2019-06-25 17:25:24

标签: ios swift closures

我有2个viewController。我从一个viewController过渡到另一个viewController,然后执行操作,当我返回时,我必须将数据传递给第一个viewController,但是前提是要通过闭包做到这一点

例如 ViewController 2中的代码

 var string: ((String) -> Void)?
@IBAction func action(_ sender: Any) {
    strii?("Lol")
    dismiss(animated: true)
}

1 个答案:

答案 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)
}