美文网首页2016技术笔记
2016笔记——组件化学习(五)

2016笔记——组件化学习(五)

作者: 满庭花醉三千客 | 来源:发表于2018-07-27 15:50 被阅读7次

    之前的四篇是基于蘑菇街的组件化学习,今天研究的是LDBusMediator的组件化之路。

    目标:

    主工程 -FirstVC-SecondVC-ThirdVC

    第一步,新建一个项目,项目内容 FirstVC-SecondVC-ThirdVC的跳转。

    第二步,新建一个项目,将第一步的FirstVC-SecondVC-ThirdVC的文件导入。

    第三步,新建一个继承于NSObject的QKProjectProtocol。

    QKProjectProtocol.h

    屏幕快照 2016-10-13 下午4.53.50.png

    QKProjectProtocol.m中不实现这两个方法,为啥?下一步见晓。

    第四步,新建一个继承于QKProjectProtocol的ProjectAProtocol:

    ProjectAProtocol.h

    屏幕快照 2016-10-13 下午4.55.21.png

    ProjectAProtocol.m

    屏幕快照 2016-10-13 下午4.56.30.png 屏幕快照 2016-10-13 下午4.56.50.png 屏幕快照 2016-10-13 下午4.57.04.png 屏幕快照 2016-10-13 下午4.57.23.png 屏幕快照 2016-10-13 下午4.58.04.png

    这个ProjectAProtocol到底干了什么事情:

    1 将Protocol注册到Mediator(具体是什么,移步下一步)

    2 硬编码,使用Key-Value的形式,保存URL.host-ViewController

    3 判断当前Protocol是否能打开某个URL

    4 打开传入的URL,从默认注册表中获取到对应URL的ViewController,然后进行传值的操作。

    第五步,创建QKMediator,是一个组件协议控制中心,注意,它控制的是组件协议,也就是继承于QKProjectProtocol类的实例。

    QKMediator.h

    屏幕快照 2016-10-13 下午5.04.12.png

    QKMediator.m

    屏幕快照 2016-10-13 下午5.04.27.png 屏幕快照 2016-10-13 下午5.04.38.png 屏幕快照 2016-10-13 下午5.05.06.png

    QKMediator的主要功能是,保存各个组件的协议,当需要打开某个URL时,前往该协议中,判断能够打开。如果可以打开,那么需要打开时,前往协议中,根据URL-ViewController注册表,得到VC,并打开。

    第六步,给组件的接口VC,也就是FirstVC添加传参方法,以及处理后的回传数据方法:

    屏幕快照 2016-10-13 下午5.16.27.png

    FirstVC中实现回传信息的方法:

    屏幕快照 2016-10-13 下午5.16.38.png

    第七步,调用组件的服务。

    ViewController.h中没有改动。

    ViewController.m:

    屏幕快照 2016-10-13 下午5.11.56.png 屏幕快照 2016-10-13 下午5.12.06.png

    关键是打开的URL了,qk365:// 这几个不重要,关键是FirstVC,这个要和ProjectAProtocol中shareProjectAProtocol方法中所注册的urlDic的Key保持一致,需要跳转哪个ViewController,就使用对应的Key。

    第八步,运行

    useOne.gif

    还有打印台信息:

    屏幕快照 2016-10-13 下午5.29.36.png

    加油~

    相关文章

      网友评论

        本文标题:2016笔记——组件化学习(五)

        本文链接:https://www.haomeiwen.com/subject/qolgmftx.html