iOSiOS Developer

iOS组件化使用JLRoutes示例

2017-09-18  本文已影响187人  Andyzhao

前言:看到很多人写的文章几乎都是不同APP跳转,并没有关于组件化使用的示例。应用内跳转对于初学的人也找不到方向,所以写了个小demo。

步骤:

// JLRoutes本质可以理解为:保存一个全局的Map,key是url,value是对应的block 下列方法相当于程序运行加到map中数据
+ (void)load{
  
    [[JLRoutes routesForScheme:@"nice"] addRoute:@"one" handler:^BOOL(NSDictionary<NSString *,id> * _Nonnull parameters) {
      
        OneViewController *oneVc = [[OneViewController alloc] init];
        UINavigationController *nav = parameters[@"nav"];
        if (nav) {
             [nav pushViewController:oneVc animated:YES];
        }else{
            // 真实开发是根据情况设置,一般都是保存全局导航,跳转参数未传nav值时,取值跳转
            [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:oneVc animated:YES completion:^{
                
            }];
        }
       
        return YES;
    }];
}
- (IBAction)jumpOneVc:(id)sender {
    
    // 点击通过JLRoutes跳转  通过JLRoutes跳转可以解耦,在正式app中一般都是分模块开发 比较方便
    [[JLRoutes routesForScheme:@"nice"] routeURL:[NSURL URLWithString:@"one"] withParameters:@{@"nav":self.navigationController}];
}

基本的入门demo点此下载

后记:这样就能在单个模块进行跳转,不需要引入控制器的头文件,耦合性很小。

上一篇下一篇

猜你喜欢

热点阅读