YYRouter一个简单好用的swift路由组件, 纯swift开发,超轻量,代码量小,定义的路由不占内存,跳转的时候按使用需要才实例化,超省内存。支持多模块开发,可以做不同模块组件间对象的解耦工具,支持通过定义路由key获取不同组件的路由对象。路由代码有自检查功能,定义不对的有asset告警,方便团队间开放规范。已经在大项目中,多模块组件实战多年。欢迎使用。
pod 'YYRouter'
extension ViewController: YYRoutable {
static func createInstance(params: [String : Any]) -> YYRoutable {
return ViewController()
}
}
extension YYRouter {
@objc func router_ViewController() -> YYRouterModel {
return YYRouterModel(to: "app://ViewController", routerClass: ViewController.self)
}
}
YYRouter.pushTo(jumpParams: ["to": "app://ViewController"])
这里负责传参
YYRouter.pushTo(jumpParams: ["to": "app://ViewController", "param1": "1", "param2": 2])
接收端负责接收
extension ViewController: YYRoutable {
static func createInstance(params: [String : Any]) -> YYRoutable {
let vc = ViewController()
vc.param1 = params["param1"] as? String ?? ""
vc.param2 = params["param2"] as? Int ?? 0
return vc
}
}
如果项目按模块组件开发,不同模块间都引入路由模块,那么A模块可以通过下面方法拿到B模块的某个类对象。
let params = ["to": "app://ViewController", "param1": "1", "param2": 2]
if let vc = YYRouter.getRouterVC(jumpParams: params) {
return vc // 通过路由跨模块拿到路由key:"app://ViewController"的对象。
}