Swift利用闭包反向传值
来源:互联网 发布:淘宝直通车黑车 编辑:程序博客网 时间:2024/04/27 22:34
首先,闭包原理和oc中的block是异曲同工,只是书写方式稍有差异。
写个Demo来用闭包(closure)实现下控制器反向传值
界面十分简单,点击按钮进入第二个控制器,在textfield中输入文字后返回,主页面的label文字便自动更改。
首先按照开发逻辑实现第二个控制器的闭包函数:
定义个闭包类型,需要传递的参数为String而且注意返回值是Void
typealias MyColsure = (str :String)->Void
然后就是声明一个方法用来保存传入的闭包,并且在将要退出控制器的时候传出textfield的文字:
var myClosure: MyColsure? func changeLabelText(closure: MyColsure){ myClosure = closure } override func viewWillDisappear(animated: Bool) { super.viewWillDisappear(animated) myClosure!(str:textField.text!) }
回到第一个控制器,在prepareForSegue方法中获得第二个控制器然后执行刚写的方法:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { let sec = segue.destinationViewController as! SecondViewController sec.changeLabelText { (str) -> Void in self.label.text = str } }
大功告成~~
1 0
- Swift利用闭包反向传值
- swift中利用闭包进行反向传值
- Swift 正向传值以及利用闭包(closure)实现反向传值(七)
- Swift利用闭包(closure)来实现传值-->前后两个控制器的反向传值
- Swift利用闭包(closure)来实现传值-->前后两个控制器的反向传值
- Swift利用闭包(closure)来实现传值-->前后两个控制器的反向传值
- Swift之delegate代理和Block闭包的反向传值
- Swift 闭包传值 反向传值
- swift基础利用闭包在两个视图界面传值
- Swift代理方法反向传值
- Swift 闭包页面传值
- swift传值:利用代理(delegate)和闭包(closure)
- swift中delegate与block的反向传值
- 【Swift初见】Swift闭包
- swift页面传值之block(闭包)传值
- 6.7 Swift闭包捕获值
- swift闭包的值捕获
- Swift 闭包(六)
- Java设计模式之单例模式
- spring的CORS
- FragmentTabHost使用方法
- C++/C面试题集
- hadoop FS Shell
- Swift利用闭包反向传值
- 集合初探(二)
- 河内之塔(汉诺塔) java实现
- android 友盟分享一直返回分享取消
- SyntaxError: Non-ASCII character ‘\xe5′ in file 关于python中的编码问题
- MFC控件系列之一:Edit Control用法
- 不同区域控制器名称相同出错的解决方法(备忘)
- 《HTTP权威指南》学习笔记-HTTP报文
- 16-Ajax学习之什么是Ajax,Ajax原理