Router 框架基于 runtime,用于 iOS 上的 push/present/pop/dismiss
兼容性: 支持 Objective-C 和 Swift
易用性: 支持属性自动赋值和完成回调
低耦合: 无需继承基类或遵循协议,即插即用
适用性: 支持除 UIViewController 之外的其他类的跳转
Objective-C
// Push
[[JYRouter router] push:@"JYViewController"];
// Push, Params
NSDictionary *params1 = @{ @"title" : @"JYRouter"};
[[JYRouter router] push:@"JYViewController" animated:YES params:params1];
// Push, Params, Callback
NSDictionary *params2 = @{@"type" : @(0)};
[[JYRouter router] push:@"JYViewController" animated:YES params:params2 completion:^{
NSLog(@"🔥🔥🔥Push completion callback🔥🔥🔥");
}];
Swift
// Push
JYRouter().push("JYViewController")
// Push, Params
let params1 = ["title" : "JYRouter"]
JYRouter().push("JYViewController", animated: true, params: params1)
// Push, Params, Callback
let params2 = ["title" : "JYRouter"]
JYRouter().push("JYViewController", animated: true, params: params2, completion: {
print("🔥🔥🔥Push completion callback🔥🔥🔥")
})
Objective-C
// Set in AppDelegate
[[JYRouter router] setCustomNavigationClass:[JYNavigationController class]];
Swift
// Set in AppDelegate
JYRouter().setCustomNavigationClass(JYNavigationController.self)
下载 JYRouter
子目录中的所有文件。
将 JYRouter 内的源文件添加(拖放)到你的 Xcode 项目中。
Objective-C:
#import "JYRouter.h"
Swift:
"YourProjectName-Bridging-Header.h"
桥接头文件#import "JYRouter.h"
JYRouter 采用 MIT 许可证发布。详情见 LICENSE 文件。
基于 runtime 实现的 iOS 路由框架
Objective-C
// Push跳转
[[JYRouter router] push:@"JYViewController"];
// Push跳转,附带参数
NSDictionary *params1 = @{@"title" : @"JYRouter"};
[[JYRouter router] push:@"JYViewController" animated:YES params:params1];
// Push跳转,附带参数,完成回调
NSDictionary *params2 = @{@"type" : @(0)};
[[JYRouter router] push:@"JYViewController" animated:YES params:params2 completion:^{
NSLog(@"🔥🔥🔥Push完成回调🔥🔥🔥");
}];
Swift
// Push跳转
JYRouter().push("JYViewController")
// Push跳转,附带参数
let params1 = ["title" : "JYRouter"]
JYRouter().push("JYViewController", animated: true, params: params1)
// Push跳转,附带参数,完成回调
let params2 = ["title" : "JYRouter"]
JYRouter().push("JYViewController", animated: true, params: params2, completion: {
print("🔥🔥🔥Push完成回调🔥🔥🔥")
})
Objective-C
// 在AppDelegate设置
[[JYRouter router] setCustomNavigationClass:[JYNavigationController class]];
Swift
// 在AppDelegate设置
JYRouter().setCustomNavigationClass(JYNavigationController.self)
下载 JYRouter 文件夹内的所有内容。
将 JYRouter 内的源文件添加(拖放)到你的工程。
Objective-C:
#import "JYRouter.h"
Swift:
"你的工程名-Bridging-Header.h"
桥接文件#import "JYRouter.h"
JYRouter 使用 MIT 许可证,详情见 LICENSE 文件。