Swift 三种传值方式 【属性,代理,闭包】
2017-03-03 11:24
281 查看
属性 属性传值很简单,适用于 从第一级传入第二级(正向传递)
2 代理传值(适用于逆向传值)二级到一级
3.闭包传值(本质是OC中的代码块传值)
如上 ,三种传值方式的基本步骤。。
//在要进入的控制器定义属性 1.class SecViewController: UIViewController { var labT = "" } //在一级控制器中给二级控制器赋值 2.let secVC = SecViewController() secVC.labT = "属性传值"
2 代理传值(适用于逆向传值)二级到一级
//在二级控制器定义代理协议 protocol SecViewControllerDelegate{ func SecDelegateSendValue(str:String) } class SecViewController: UIViewController { var labT = "" // 设置代理属性 var delegetes:SecViewControllerDelegate! = nil //调用代理方法 if (self.delegetes != nil) { self.delegetes.SecDelegateSendValue(str: "代理传值") } //在一级控制器遵循协议 class ViewController: UIViewController,SecViewControllerDelegate //实现协议方法 func SecDelegateSendValue(str:String) { prolab.text = str } //成为代理者 secVC.delegetes = self
3.闭包传值(本质是OC中的代码块传值)
// 定义闭包 typealias callBackFunc = (_ text:String) ->Void //创建闭包对象 var selCallBack:callBackFunc? //调用闭包 if (selCallBack != nil) { selCallBack!("代码块传值") } //在一级界面 获取闭包传的值 let secVC = SecViewController() secVC.labT = "属性传值" secVC.selCallBack = {(str:String) in self.Blocklab.text = str }
如上 ,三种传值方式的基本步骤。。
相关文章推荐
- [swift]-类的属性的三种属性以及定义方式
- ubuntu设置代理 的三种方式
- Squid三种代理方式的实现及ACL
- Swift遍历数组的三种方式
- Slidemenu(侧滑)的使用(三种使用方式)及属性详解
- iOS 页面间几种传值方式(属性,代理,block,单例,通知)
- 注入属性的三种方式及其比较
- iOS 页面间几种传值方式(属性,代理,block,单例,通知)
- iOS 页面间几种传值方式(属性,代理,block,单例,通知)
- iOS 几种传值方式(属性,代理,block,通知,本地存储,单例类)附Demo
- iOS传值方式:属性,代理,block,单例,通知
- Android三种Webview获取Javascript返回值/属性方式
- java 复用类的三种方式区别 组合,继承,代理的区别
- 1.属性 2.方法 3.协议 三种传值方式——代码演示
- oc三种传值方式:通知传值,代理传值,block传值
- BOM__Document对象简介-三种获取节点方式,通过节点层次关系获取节点,以及对象中的属性操作
- 【Swift学习】 网络-代理-闭包的综合应用
- 使用js改变DOM样式的三种方式 - className属性
- 代理 单例 属性 block 四大传值方式
- iOS 页面间几种传值方式(属性,代理,block,单例,通知)