美文网首页
iOS Router

iOS Router

作者: livesxu | 来源:发表于2018-10-17 20:48 被阅读0次

route基本的应用:1.控制器/模块 解耦合  

我的思路是仿照url格式,不同于一些中间介质的route。//http://baidu.com

首先route可设置delegate:

routeProject 用于返回相应的项目标识——相应的跳转链接scheme必须与之相符才能进行跳转;

lxRouteCustomPropertyMapper 用于配置相应的map表——用key去映射value,可以使用key来作为跳转host(相应的控制器名称)。例如:开始的时候应该建立一个公共的web页面,用key:http/https...@{@"http":@"CommonWebViewController"}

当然,这两个代理是可以不设置的。

routeMap是综合的处理链接,流程:先比对是否是网址,是网址直接跳转公共的web页;再看是否是白名单配置的scheme,如果是那就打开相应的app;之后,比对scheme、host、取值属性赋值。

再然后需要看下routeStore,而routeStore之前要说下我对控制器扩展了一个属性:lx_stores,此block可以用来传递id值也可以用来返回id值

在LXRouter类存在一个lxStoreList字典,当调用routeStore的时候会根据map或者vc本身作为key去存储一个block

在跳转执行之前会将之前存储的block赋值给扩展属性lx_stores

这样block就与将要跳转的控制器绑定了,这时候我们可以用来传类或者回调数据

例如:

最后再用topViewController执行相关的跳转操作。

demo和库地址:LXRouter+Demo

各位看官有其他想法或者思路的分享一下,谢谢。

以前很多东西还没有整理出来,前段时间陆续整了一些作为pods,坚持写一个东西真的是挺难的,求鞭挞。。

相关文章

网友评论

      本文标题:iOS Router

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