简单来说:一个模块对应一个 Mediator的分类 ,一个分类对应一个target,一个target可以包含多个action
一、要实现什么效果:
说一下场景,有一个模块A ,包括两个大页面,我要实现从APP某个页面跳转到模块A中的这两个页面并传值
APP 中某个页面:
image.png
这个是模块A中的 一个页面,暂定为B页面吧
image.png
这个是模块A中的另外一个页面,暂定为C页面
image.png
二、实现步骤
1、制作A模块私有库,私有库制作步骤,请看我的文章:https://www.jianshu.com/p/2e21825a0a31
2、把CTMediator 分类拿出来看下
image.png
这个是CTMediator 的分类,target一样但是action 不一样
3、把target 拿出来看下
image.png这个是模块A 的 target 类,可以写多个action
4、app 中怎么处理
image.png
上图是从APP中的某个页面分别跳转到 B和C页面的实现
Target-Action方案总结:
侵入最小,但硬编码较多。
runtime编译阶段不检查,运行时才检查对应类或者方法是否存在,对开发要求较高。
网友评论