2016笔记——组件化学习(八)
继续说说CTMediator组件化。
上一篇实现了:主工程+项目A
ViewController-FirstVC-SecondVC-ThirdVC
这一篇的目标是:主工程+项目A+项目B
ViewController-FirstVC-SecondVC-ThirdVC-MondayVC
基于上一篇的基础,这篇仅延伸。
需要额外操作的几步:
1 新建一个MondayVC项目,完成相关编码。
2 将MondayVC相关文件,导入上一篇的完工的项目。
3 新建WLMediator的类目,WLMediator+ModuleB
WLMediatro+Module.h
屏幕快照 2016-10-14 下午5.55.10.pngWLMediatro+Module.m
屏幕快照 2016-10-14 下午5.55.23.png 屏幕快照 2016-10-14 下午5.55.33.png4 新建Project_BModule文件,导入MondayVC头文件
Project_BModule.h
屏幕快照 2016-10-14 下午5.56.32.pngProject_BModule.m
屏幕快照 2016-10-14 下午5.56.45.png5 在ThirdVC中导入WLMediatot+ModuleB头文件,然后在点击事件中编码:
屏幕快照 2016-10-14 下午5.59.15.png6 运行:
useTwo.gif打印台信息:
屏幕快照 2016-10-17 上午9.34.05.png老规矩,上梳理图:
WLMediator梳理.png有没有觉得很乱?
我再用语言表述一下:
1 创建WLMediator,提供两个方法:本地方法和远程方法。
2 创建WLMediator的类目WLMediator+ModuleA,提供公开方法A。
3 公开方法A中内部调用WLMediator的本地方法,生成Target-Action。
4 根据本地方法生成的Target名称,构建继承于NSObject的Project_A。
5 根据本地方法生成的Action名称,在Project_A中构建方法。
6 在VC中调用组件A,先导入WLMediator+ModuleA的头文件,然后调用公开方法A。公开方法A的内部,会调用WLMediator的本地方法,构建Target-Action,然后利用Runtime去调Project_A中组件A的服务方法。
7 多组件时,重复第2到6步即可。
加油~