iOS 路由总结大全

iOS 路由总结大全,第1张

iOS路由目前业内流行的有两大分类:1、基于URL或protocol的注册调度型路由 2、runtime调度型路由

其中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口应该是空闲的。因为由机顶盒做了路由,而原路由器 只能当做是交换机来用了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11266106.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存