处理多层级事件传递(UIResponder拓展)

1、使用场景

多层级的事件传递与响应

编辑

2、参数说明

eventName:通过这个key对事件进行识别;

userInfo:响应事件需要的数据,类型可根据需要来写(model或NSDictionary等等)

编辑

3、使用方法

给UIResponder添加一个自定义事件

当事件发生,沿响应者链,找到当前view的nextResponder(即:superView)对应的view(或viewController),找到这个view后先判断能不能响应这个事件,如果不能那就继续找nextResponder,直到viewController接收该事件。


在当前view响应点击事件的方法中,将事件传递出去

例:


注:每一个key(即:eventName),可定义在当前view中,以便接收事件的superView使用

在对应controller中统一接收事件

例:


在对应control中实现具体事件

例:


4、优缺点

优点:统一处理多层级事件的传递与相应,避免了逻辑混乱的多层代理,代码简洁,结构简单;

缺点:对于层级结构简单的情况,相比抛出代理而言,逻辑清晰度稍差。

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

推荐阅读更多精彩内容