2016笔记——组件化学习(六)
继续延伸LDBusMediator的组件化之路。
上一篇实现了:主工程+项目A
ViewController-FirstVC-SecondVC-ThirdVC
这一篇的目标是:主工程+项目A+项目B
ViewController-FirstVC-SecondVC-ThirdVC-MondayVC
基于上一篇的基础,这篇仅延伸。
需要额外操作的几步:
1 新建一个MondayVC项目,完成相关编码。
2 将MondayVC相关文件,导入上一篇的完工的项目。
3 新建一个继承于QKProjectProtocol的ProjectBProtocol。
ProjectBProtocol.h
![](https://img.haomeiwen.com/i711728/ffecbb34362c7655.png)
ProjectBProtocol.m
![](https://img.haomeiwen.com/i711728/59f8c8ba99daa517.png)
![](https://img.haomeiwen.com/i711728/3be14a845a34695f.png)
![](https://img.haomeiwen.com/i711728/17d2c398c4c43034.png)
![](https://img.haomeiwen.com/i711728/81578b8868c19987.png)
![](https://img.haomeiwen.com/i711728/8b9e2691de0795d9.png)
4 前往MondayVC中写参数字典、回传参数方法
MondayVC.h
![](https://img.haomeiwen.com/i711728/5899f9b3aec27d6f.png)
MondayVC.m
![](https://img.haomeiwen.com/i711728/ba4a30c67092b5ee.png)
5 前往A组件中调用的地方,也就是ThirdVC中,调用服务:
导入QKMediator和ProjectBProtocol的头文件。
在按钮点击事件中如下编码:
![](https://img.haomeiwen.com/i711728/3f975cb71ae3b527.png)
然后就是运行了:
![](https://img.haomeiwen.com/i711728/3f1571f167dae524.gif)
最后,上流程梳理图:
![](https://img.haomeiwen.com/i711728/44bd5a4f154bc33e.png)
有没有觉得混乱?
好吧,我再用语言表述一下:
第一步,建QKProjectProtocol。
第二步,建继承于QKProjectProtocol的ProjectAProtocol
第三步,在ProjectAProtocol中导入组件A的各个头文件,然后初始化URL-VC表
第四步,将ProjectAProtocol注册到QKMediator中,生成 协议名-协议 注册表。
第五步,使用时,传入URL和协议。先到QKMediator中,根据协议名-协议注册表找到ProjectAProtocol,判断能否打开URL,然后把URL传给ProjectAProtocol。
第六步,在ProjectAProtocol中得到URL后,利用URL-VC表,找到对应的VC,然后调用VC的服务。
组件B的使用,重复第二步到第六步即可。
加油!~