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,坚持写一个东西真的是挺难的,求鞭挞。。
网友评论