XLUrlRouter
A swift navigation control router
swift 路由器跳转库XLUrlRouter功能介绍
XLUrlRouter 主要针对控制器跳转,使用简洁明了
本路由器借鉴DCURLRouter,由于项目用 swift 重构,swift 当前路由框架没有特别适合我的,所以我自己搭建了这么一个XLUrlRouter框架,纯 swift 封装,喜欢给个 star。
具体使用说明如下:
- 创建一个.plist文件,内容大致如下:
可以创建类似的 plist 文件,内容不用完全相同,但是层次要相同 - 在项目的 AppDelegate 里面注册控制器,如图
Router.loadConfigDict(pistName: "DCURLRouter.plist")
Router.loadConfigDict(pistName: "DCURLRouter")
红线框内的两种注册方式都可以,代码中做了兼容处理,为了使框架更为友好
- 框架中有两个主文件 Router 和 LL
- Router 主要负责根据 URL 路径进行跳转的功能:
-
- 控制器的 pushViewController 功能:
Router.go(urlString:"url路径",query: ["参数":参数] , animated:true) { (params)in
log("回到ViewController 参数=\(params ?? ["":""])")
}
-
- 控制器的 presentViewController 功能:
Router.present(urlString: "url路径", animated: true) {
log("ViewController开始present")
}
-
- 控制器的 popViewController 功能:
Router.goBack(params: ["uid":2], animated:true)
- LL 主要负责系统控制器跳转的功能,可以在任何地方进行跳转,不受限制
-
- 控制器的 pushViewController 功能:
LL.pushViewController(vc, animated: animated,false)
-
- 控制器的 presentViewController 功能:
LL.presentViewController(vc, animated: animated, completion: completion)
-
- 控制器的 popViewController 功能:
LL.popViewController(animated: animated)
可以 pop 两次:
LL.popTwiceViewController(animated: true)
也可以 pop 到根控制器:
LL.popToRootViewController(animated: true)
还可以 pop 多次:
LL.popViewController(times: n, animated:true)
-
- 控制器的dismissViewController功能:
LL.dismissViewController(animated: true)
可以dismiss两次:
LL.dismissTwiceViewController(animated: true)
也可以dismiss到根控制器:
LL.dismissToRootViewController(animated: true)
还可以多次dismiss:
LL.dismissViewController(times: n, animated:true)