为了实现项目的组件化,今天开始研究蘑菇街组件化。
Protocol方案:
第一步,写一个简单的项目,项目内容是
FirstVC ->SecondVC->ThirdVC跳转。
第二步,新建一个项目,将FirstVC、SecondVC、ThirdVC导入到新的项目中来。
第三步,新建一个继承于NSObject的ModuleManager,也就是组件管理中心。
第四步,新建一个继承于NSObject的CompontProtocol,也就是协议中心。
然后在CompontProtocol中添加ProjectAProtocol协议:
屏幕快照 2016-10-11 下午4.54.37.png第五步,在ModuleManager.h中添加三个方法:
屏幕快照 2016-10-11 下午4.58.39.png第六步,在ModuleManager.m中实现这三个方法:
屏幕快照 2016-10-11 下午5.00.30.png 屏幕快照 2016-10-11 下午5.01.36.png 屏幕快照 2016-10-11 下午5.01.47.png第七步,前往FirstViewController,也就是我们添加组件的入口VC,做如下处理:
屏幕快照 2016-10-11 下午5.11.43.pngFirstViewController.m:
屏幕快照 2016-10-11 下午5.12.44.png 屏幕快照 2016-10-11 下午5.12.59.png 屏幕快照 2016-10-11 下午5.13.19.png本步综述:
导入ModuleManager和CompontProtocol头文件。
签订协议。
在load方法中注册本类与协议。
实现协议方法。
特定条件触发的block,需要保存原block,触发后回传值。
第八步,在本项目的ViewController中导入ModuleManager和CompontProtocol的头文件,然后添加按钮,并在按钮点击事件中写:
屏幕快照 2016-10-11 下午5.03.03.png第九步,运行:
protocol.gif效果可以,那么那些处理的信息呢?
看看打印台:
屏幕快照 2016-10-11 下午5.09.58.png整体剖析:
组件(FirstVC-SecondVC-ThirdVC),组建管理中心(ModuleManager),协议中心(CompontProtocol),新外壳(新建的项目)关系:
组件和组件管理中心、协议中心耦合
新外壳中的VC与组件中心和协议中心耦合。
新外壳的ViewController与组件无关联。
至此,我们已经实现了Protocol方案的组件化~
加油~
网友评论