MGLRouter主要是做路由跳转,可以减少项目中不同模块之间的耦合,更利于代码分离。
常见用法是先注册,在使用。
可以注册一个单例,在单例中把后续要使用到的跳转controller之类注册进去,然后在回调中做好对参数的分离,获取。然后实现跳转的代码逻辑。
[MGJRouter registerURLPattern:@"test://detail"toHandler:^(NSDictionary*routerParameters) {
NSString*detailId = routerParameters[@"detailId"];
DetailVC *detailVC= [[DetailVCalloc] initWithDetailId:detailId];
[[Appmanager topViewController].navigationController pushViewController:detailVC animated:YES];
}];
或者实现一个单独的类,在类的+ (void)load方法中实现上面逻辑,这样在其他地方就可以直接使用就行,不用其他额外代码。
使用时直接调用URL,然后传入相关的参数就可以了。
[MGJRouter openURL:@"test://detail" withUserInfo:@{@"detailId" : @"123"} completion:nil];