iOS 工作之余小总结之(六)(3) --四种界面反向传值的方式:委托代理传值
2017-01-06 17:31
316 查看
我再前两篇的博客中,总结了属性和回调方法的反向传值方法,但是,作为高级程序员,我们追求写出高内聚低耦合的代码。
这样不仅迭代的时候好修改,并且在有错误发生的时候,可以改动的比较小。而代理作为反向传值的手段,可以很好的解耦和,因为当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,即使从没有做过开发的朋友也可以使用和理解。
这样不仅迭代的时候好修改,并且在有错误发生的时候,可以改动的比较小。而代理作为反向传值的手段,可以很好的解耦和,因为当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 工作之余小总结之(六)(2) --四种界面反向传值的方式:回调方法传值
- iOS 工作之余小总结之(六)(4) --四种界面反向传值的方式:block反向传值
- IOS开发中常见四种数据储存方式总结
- IOS开发中常见四种数据储存方式总结
- iOS 拨打电话四种方式总结(推荐最后一种)
- IOS--工作总结--post上传文件(以流的方式上传)
- IOS种四种持有化数据方式——(1)属性列表
- 【iOS-Cocos2d游戏开发之十九】游戏数据存储的四种常用方式NSKeyedArchiver/NSUserDefaults/Write写入/SQLite3
- 【iOS-Cocos2d游戏开发之十九】游戏数据存储的四种常用方式; 推荐
- IOS种四种持有化数据方式——(2)对模型对象进行归档
- 【iOS-Cocos2d游戏开发之十九】游戏数据存储的四种常用方式NSKeyedArchiver/NSUserDefaults/Write写入/SQLite3
- IOS 四种保存数据的方式
- MFC Dialog界面跳转实现方式总结
- 在IOS的数据处理中常用的四种数据存取方式
- 工作6年的码农ios职位面试总结
- Qt中针对比较耗时的工作防止界面假死的处理方式
- iOS游戏的设计、营销和盈利方式总结
- 总结iOS游戏的设计、营销和盈利方式
- 【iOS-Cocos2d游戏开发之十九】游戏数据存储的四种常用方式NSKeyedArchiver/NSUserDefaults/Write写入/SQLite3
- iOS 数据保存几种方式总结