美文网首页iOS Developer技术架构iOS开发攻城狮的集散地
《iOS组件化》之 搭建适合业务的URL跳转路由-ALRoute

《iOS组件化》之 搭建适合业务的URL跳转路由-ALRoute

作者: hansfeng | 来源:发表于2018-04-26 15:21 被阅读151次

    前言

    目前有很多市面上很不错的URL跳转路由器,例如 MGJRouterCTMediatorHHRouter
    本着简洁、易维护、符合业务、编码方便的前提,简单研究了下源码之后,HHRouter 简洁的代码让人有cover住的信心,巧妙的用法也大大提升了效率。
    HHRouter 的缺点

    • 需要每个类在+load方法注册,感觉统计和维护起来并没那么直观
    • 获取到controller之后才能传递参数

    我们希望在plist表里就能看到URL对应的关系,openURL时可以传递相应的param,借鉴 MGJRouter使用的思想,于是在MGJRouterHHRouter的基础上实现了ALRouter

    使用

    1. plist里面添加相应的键值对,URLkey,类名为value,即使你已经进行组件化,依然可以在plist文件注册pod中的ViewController
    2. application:(UIApplication *)application didFinishLaunchingWithOptions:注册URL对应的类名:
    [ALRouter loadConfigPlist:nil];
    

    也可以直接注册某个controller

    [ALRouter regist:@"GoodsDetailController" toControllerClass:[self class]];
    

    3.通过URL获取controller

    [self.navigationController pushViewController:[ALRouter openURL:@"GoodsDetail"] animated:YES];
    

    或者传递参数

    [self presentViewController:[ALRouter openURL:@"GoodsDetail" withParams:@{}] animated:YES completion:nil];
    

    End

    github地址在这里

    我的组件化系列文章:
    《iOS组件化》组件化实践
    《iOS组件化》组件的划分
    《iOS组件化》创建公共/私有 Pods
    《iOS组件化》之使用AOP代替继承
    《iOS组件化》之搭建基于AFNetworking的网络请求框架

    相关文章

      网友评论

      • c18456007e32:如果有需要二级页面回调事件到上级页面的情况,你这个是怎么处理的?
        hansfeng:@vook 写block,通过param传递
        hansfeng:可以用block 放到params,二级页面从params取到block,事件触发block即可。

      本文标题:《iOS组件化》之 搭建适合业务的URL跳转路由-ALRoute

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