模型视图控制器 – 在Swift中传递数据
发布时间:2020-12-14 05:43:06 所属栏目:百科 来源:网络整理
导读:我一直在寻找一个答案,但只找到了答案. 我有一个viewController1与一个按钮到viewController2.没有代码,我通过界面构建??器设置.在viewController2上,我有一个关闭自己的按钮 self.dismissViewControllerAnimated(true,completion,nil) 当视图被关闭时,我想
我一直在寻找一个答案,但只找到了答案.
我有一个viewController1与一个按钮到viewController2.没有代码,我通过界面构建??器设置.在viewController2上,我有一个关闭自己的按钮 self.dismissViewControllerAnimated(true,completion,nil) 当视图被关闭时,我想将一个字符串从viewController2传回给ViewController1.我该怎么做呢?此外,我正在使用swift. 提前致谢!
有两种常见的模式,这两种都不需要viewController2明确地知道viewController1(这对于可维护性是非常好的):
>为viewController2创建一个委托协议,并将viewController1设置为委托.无论何时要将数据发送回viewController1,都要让viewController2发送“委托”数据 以下是#2的示例代码: class ViewController2 : UIViewController { var onDataAvailable : ((data: String) -> ())? func sendData(data: String) { // Whenever you want to send data back to viewController1,check // if the closure is implemented and then call it if it is self.onDataAvailable?(data: data) } } class ViewController1 : UIViewController { func doSomethingWithData(data: String) { // Do something with data } override func prepareForSegue(segue: UIStoryboardSegue!,sender: AnyObject!) { // When preparing for the segue,have viewController1 provide a closure for // onDataAvailable if let viewController = segue.destinationViewController as? ViewController2 { viewController.onDataAvailable = {[weak self] (data) in if let weakSelf = self { weakSelf.doSomethingWithData(data) } } } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |