iOS 工作之余小总结之(六)(3) --四种界面反向传值的方式:委托代理传值

本文介绍了iOS开发中如何通过委托代理(Delegate)来实现界面之间的反向传值,以达到代码高内聚低耦合的效果。详细讲解了从创建协议到实现代理方法的整个过程,通过一个具体的需求场景展示了如何在两个界面之间使用委托代理传递TextField的文本信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我再前两篇的博客中,总结了属性和回调方法的反向传值方法,但是,作为高级程序员,我们追求写出高内聚低耦合的代码。
这样不仅迭代的时候好修改,并且在有错误发生的时候,可以改动的比较小。而代理作为反向传值的手段,可以很好的解耦和,因为当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,即使从没有做过开发的朋友也可以使用和理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值