iOS 工作之余小总结之(六)(3) --四种界面反向传值的方式:委托代理传值
来源:互联网 发布:最安全的国家知乎 编辑:程序博客网 时间:2024/06/04 20:24
我再前两篇的博客中,总结了属性和回调方法的反向传值方法,但是,作为高级程序员,我们追求写出高内聚低耦合的代码。
这样不仅迭代的时候好修改,并且在有错误发生的时候,可以改动的比较小。而代理作为反向传值的手段,可以很好的解耦和,因为当A和B界面进行反向传值的时候,要在B中创建A控制器的属性,如果此时,有C和D界面也需要用B界面进行反向传值的时候,此时就要在B中写A,C,D的属性,只要有一个类要改动,B类也要进行改动。
而代理则不用,B界面声名一个id的指针,用于指向某一个用来反向传值的控制器,一劳永逸。下面我上代码。需求和之前一样,为了不让读者麻烦,我再写一遍需求:在AFYController中有一个Label,点击空白处推出BFYController界面,BFYController中有一个TextField,点击空白处返回AFYController,并将文本框中的text反向传值给AFYController,显示在AFYController的Label上。
1.在BFYController.h中,写一个协议,声明一个方法
2.BFYController.h中,声明一个属性用于管理代理对象
3.在BFYController返回AFYController的时候调用协议方法
4.在AFYController.m中,遵守BFYController中协议,成为代理
5.在AFYController.m中,实现BFYController中的协议方法
6.最后在AFYController.m中,让BFYController中的代理成为A
到这里,委托的反向传值就完成了,其实,这几种传值方式的逻辑思路都是一样的。但是代理可以解耦合,并且可读性也比较好。在从反向传值的最后一篇,我会总结用block进行反向传值,前面已经用了篇幅介绍block,即使从没有做过开发的朋友也可以使用和理解。
- iOS 工作之余小总结之(六)(3) --四种界面反向传值的方式:委托代理传值
- iOS 工作之余小总结之(六)(1) --四种界面反向传值的方式:属性传值,回调方法传值,委托(代理)传值,block传值
- iOS 工作之余小总结之(六)(4) --四种界面反向传值的方式:block反向传值
- iOS 工作之余小总结之(六)(2) --四种界面反向传值的方式:回调方法传值
- iOS 工作之余小总结(四)--(3) NSDate 时间类
- iOS 工作之余小总结(四)--(2)可变与不可变数组
- iOS 工作之余小总结---(四)-(4)可变与不可变字典
- iOS 工作之余小总结(四)--(1)可变与不可变字符串方法大全
- iOS --工作之余小总结之聊天推送(APNS)原理
- iOS 工作之余小总结(五)--(1) Block在程序中的三个用法
- iOS UIViewController之间的传值方式之一:委托代理
- IOS学习之——ViewController之间双向传值(反向为代理模式)
- iOS 工作之余小总结(二)类的高度总结----封装,继承,派生,重写,多态,协议,分类,扩展,组合,聚合。
- 关于iOS的UI界面反向传值方法总结
- iOS 工作之余小总结(三) 拷贝----浅拷贝,深拷贝(copy),引用计数拷贝及区别
- iOS 工作之余小总结 -- (五)(1) 最简单的Block教程 及Block与全局(局部)变量
- ios中控制器之间的反向传值之二---代理传值
- ios之反向传值
- Java对象的生命周期
- hadoop集群环境部署
- 【JS】事件冒泡&事件捕获
- PHP安装扩展
- 前后台数据交互——ajax()方法 后台返回一个实体类的list
- iOS 工作之余小总结之(六)(3) --四种界面反向传值的方式:委托代理传值
- Docker学习+基于Docker MySQL的主从复制
- libjpeg移植到dm368平台
- TortoiseGit 记住用户名和密码的方法
- tomact配置域名和端口直接访问网站
- Aerospike数据库实战(一) -- Aerospike是大数据时代互联网广告专用数据库,为RTB而生
- Android圆形图片控件CircleImageView的使用
- Java基础——Comparable和Comparator的区别
- SpringBoot项目实战--mybatis