其中protocol类型的路由查的资料中目前只找到了一个MGJRouter,就是蘑菇街路由,但是这个主库已经被删了,所以这个类型的就不再讨论了。
下面为大家整理了一下这两种类型路由各自的原理、优缺点、常见的第三方库等,参见下表:
下面我再针对表中常见的第三方库的详细使用方法进行介绍:
5.5k Star
1.1.1.1:
在BaseViewController和BaseTabBarController中添加设置参数方法,供子方法继承(统一处理)
1.1.1.2:添加接收到路由后的处理 *** 作(统一处理)
一般放在AppDelegate中的didFinishLaunchingWithOptions方法中进行配置;需要集中管理的话得自己去写工具类统一调度
1.1.1.3:页面处理传参
HnxxtNewsParentViewController里继承方法处理传参(页面各自处理)
1.1.2.1:跳转到页面,无参数(页面各自处理)
1.1.2.2:跳转到页面,有参数(页面各自处理)
1.1.2.2:跳转到页面,有参数,指定present方式(页面各自处理)
在AppDelegate中的 openURL 方法统一处理
JLRoutes的封装
参考: iOS 组件化-路由解耦思想 JLRoutes 实战篇(一)App内控制器跳转
GitHub工程
1.添加VC配置到路由表
在AppDelegate中的 openURL 方法统一处理
1.8k Star
1.3.1.1 在AppDelegate中的didFinishLaunchingWithOptions方法中进行路由注册及导航栏设置;需要集中管理的话得自己去写工具类统一调度
1.3.1.2 在目标UIViewController中实现方法:initWithRouterParams: ,也就是如果用这个库,工程里的vc都得实现这个方法
在需要跳转的地方调用:
查看源码是没有提供处理外部应用打开当前app的相关路由方法,只提供了一个:openExternal:(NSString *)url 方法,该方法只是用来打开app外部应用的方法。所以对于外部打开app处理还是同上述一致:
在AppDelegate中的 openURL 方法统一处理
1.6k Star
1.4.1.1 在AppDelegate的didFinishLaunchingWithOptions方法中进行路由注册;统一管理也是需要自己定义工具类
在需要跳转的地方调用
查看源码也是没有提供处理外部应用打开当前app的相关路由方法,所以对于外部打开app处理还是同上述一致:
在AppDelegate中的 openURL 方法统一处理
8 star
参考HHRouter实现的路由,优化了传参方式,不再通过url传参,而是通过方法传参
在AppDelegate的didFinishLaunchingWithOptions方法中进行路由注册:
查看源码也是没有提供处理外部应用打开当前app的相关路由方法,所以对于外部打开app处理还是同上述一致:
在AppDelegate中的 openURL 方法统一处理
3.8k Star
假如路由目标vc叫 HnxxtNewsParentViewController:
1、新建Target_Hnxxt类,在这个类里去写方法提供HnxxtNewsParentViewController的实例
2、创建 CTMediator 的 Category,比如叫CTMediator+Hnxxt,在这个类里提供对外调用的路由方法
这个库也不需要初始化 *** 作;另外这里在Target_Hnxxt和CTMediator+Hnxxt中都对路由进行了统一管理;Target_Hnxxt使CTMediator和具体的路由目标类进行了解耦,详细示例如下:
在AppDelegate中的 openURL 方法进行处理,思路也是将远程的url转换为本地的跳转方式
以上就是对目前iOS 比较流行的路由库的笼统介绍,期间涉及到的第三方库的使用细节,还需要大家在用到的时候再仔细对照官方文档和demo,也可以参考下面这些我总结的相关技术博客,比官方文档更贴合实际使用:
参考资料:
iOS 组件化 —— 路由设计思路分析
iOS 组件化-路由解耦思想 JLRoutes 实战篇(一)App内控制器跳转
routable-ios源码解析
iOS开发 — HHRouter路由数据传递开发分享
CTMediator: iOS应用架构谈 组件化方案
CTMediator:在现有工程中实施基于CTMediator的组件化方案
CTMediator 的初体验
这个最好按照人家的说明书来连接。也给你一个简单说明把,你试试看从你说的情况来看,你的机顶盒应该带有路由功能,具体连接方式为:
ADSL的网线 插到 机顶盒的 WAN 口,然后把路由器的 LAN 口和机顶盒 LAN口连接起来,另外两台电脑的网口,通过网线和 路由器的其他交换口(LAN口)连接起来就可以了。
此时路由器的WLAN口应该是空闲的。因为由机顶盒做了路由,而原路由器 只能当做是交换机来用了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)