1.常见的界面间传值方式
1)属性
2)代理
3)block
4)通知
5)NSUserDefault
以上几种方式比较常见,使用广泛
2.响应链传值
今天我所记录的是一种比较少见,且仅适用于UIResponder的子类对象
基于响应链进行对象间传值;
首先我们了解一下事件传递和事件响应:
事件传递:是自上向下传递,由UIApplication -> UIWindow -> UIViewController -> UIVIew/UIButton;
事件响应:是自下向上响应,若当前对象未响应事件,则依次往上找响应者,若到最上层依然无响应者,则此次事件被抛弃;
使用方法:
首先我们给UIResponder 添加一个分类,取名Router
见下图 .h 和 .m
上述方法中
eventName: 事件名称,用来标记按钮的点击事件
modelInfo:需要传递的对象,我这里用一个字典来存储需要用到的值;
接下来我们在tableview的每一行Cell上添加一个button,并且给button和model对象分别设置一个key作为标记方便取值,然后在button的点击方法中包装好需要传递的对象,并且调用分类方法进行传值,看下图:
在viewController中重写UIResponder分类中的方法,即可拿来cell内部传出来的值
这种方法传值也挺直观方便,但使用是有限制的,仅用于UIResponder子类对象,所以在此记录一下,仅供参考哈!