前言:看到很多人写的文章几乎都是不同APP跳转,并没有关于组件化使用的示例。应用内跳转对于初学的人也找不到方向,所以写了个小demo。
步骤:
- 1.编辑podfile,pod 'JLRoutes',然后pod install 或下载直接拖入工程
- 2.注册
// 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;
}];
}
- 3.点击跳转
- (IBAction)jumpOneVc:(id)sender {
// 点击通过JLRoutes跳转 通过JLRoutes跳转可以解耦,在正式app中一般都是分模块开发 比较方便
[[JLRoutes routesForScheme:@"nice"] routeURL:[NSURL URLWithString:@"one"] withParameters:@{@"nav":self.navigationController}];
}
基本的入门demo点此下载
后记:这样就能在单个模块进行跳转,不需要引入控制器的头文件,耦合性很小。