iOS开发之界面间的传值

1.常见的界面间传值方式

1)属性
2)代理
3)block
4)通知
5)NSUserDefault
以上几种方式比较常见,使用广泛

2.响应链传值

今天我所记录的是一种比较少见,且仅适用于UIResponder的子类对象
基于响应链进行对象间传值;

首先我们了解一下事件传递和事件响应:

事件传递:是自上向下传递,由UIApplication -> UIWindow -> UIViewController -> UIVIew/UIButton;

事件响应:是自下向上响应,若当前对象未响应事件,则依次往上找响应者,若到最上层依然无响应者,则此次事件被抛弃;

使用方法:
首先我们给UIResponder 添加一个分类,取名Router
见下图 .h 和 .m


Screenshot 2021-05-06 at 9.54.53 PM.png

Screenshot 2021-05-06 at 9.55.42 PM.png

上述方法中
eventName: 事件名称,用来标记按钮的点击事件
modelInfo:需要传递的对象,我这里用一个字典来存储需要用到的值;

接下来我们在tableview的每一行Cell上添加一个button,并且给button和model对象分别设置一个key作为标记方便取值,然后在button的点击方法中包装好需要传递的对象,并且调用分类方法进行传值,看下图:


Screenshot 2021-05-06 at 10.04.03 PM.png
Screenshot 2021-05-06 at 10.05.16 PM.png

在viewController中重写UIResponder分类中的方法,即可拿来cell内部传出来的值

Screenshot 2021-05-06 at 10.14.14 PM.png

这种方法传值也挺直观方便,但使用是有限制的,仅用于UIResponder子类对象,所以在此记录一下,仅供参考哈!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容