ios移动开发block回调和代理传参

比如微信的”个人信息“用户要修改自己的名字是,从B页面跳转(pop)回A页面,将在B页面修改的名字的值传回到A页面。

1、代理传参:

(1)将B页面的代理对象设置为A,先在B页面的视图控制器类的.h文件,定义代理对象的协议方法,



(2)先在B页面的视图控制器类的.m文件,在按钮事件中,当点击按钮时响应代理方法self.delegate respondsToSelect:并且调用协议方法代理传参



(3)在A页面中的m文件中,先在@interface中实现代理,然后实现代理协议的方法


(4)页面跳转的时候获取目标视图的控制器,并且将目标视图的控制器的类的代理设置为当前视图控制器的类,



代理传参总结:从哪里传递参数到哪一个页面,哪一个页面的类就是代理对象,而定义代理协议和方法的就是传参的页面的类。


2、block回调传参:有两个视图控制器,FirstViewController 和SecondViewController,要从SecondViewController中的nameText.text值传给FirstViewController中的nameLable.text

(1)在SecondViewController.h定义block块和属性


以上代码也可以简写成一句话:(nameBlock即是block方法也是参数)


(2)SecondViewController.m中(将nameText的值传递给Block的参数name)


(3)FirstViewController.m(注意:block中的self都设置为__weak,避免循环引用


总结:代理传参和block回调传参,如果只是简单的在两个页面传递参数,用block回调会是代码量大大减少,而且代码的整洁性也好比较好:但是代理传参的价值所在,在于在比如说我们写的一个框架,你可以通过实现这个框架的代理,来是用这个代理中的方法很好用的。回调只是把一个方法写在那里,当你代码执行到的需要调用的时候他才会去回调。可以通过设置断点来加深理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值