Swiftpack.co - Package - DancewithPeng/DPRouter

DPRouter

UIKit的路由工具

导入

DPRouter支持Swift PackageCocoaPods

Swift Package

如果使用Swift Package,在Package.swift中加入

dependencies: [
    .package(url: "https://github.com/DancewithPeng/DPRouter.git", .upToNextMinor(from: "1.1.0"))
]

CocoaPods

Podfile文件中加入

pod 'DPUIKitRouter', '~> 1.1.0'

使用

Step1

首先需要在路由的目标页面遵循DPRouterPage协议,并实现协议中规定的方法

extension ArticleDetailViewController: DPRouterPageProvider {
    
  	// 通过静态方法,返回URL对应的ViewController实例
    static func page(for url: URL) -> UIViewController? {
        let detailPage = ArticleDetailViewController(nibName: "ArticleDetailViewController", bundle: Bundle(for: ArticleDetailViewController.self))
        detailPage.navigationItem.title = "文章详情"
        return detailPage
    }       
}

Step2

其次在进行路由之前,需要先将页面注册到DPRouter中

DPRoute("sub.myhost.com/articles/detail", ArticleDetailViewController.self)

Step3

在需要进行路由的调用处,通过URL获取页面的实例,然后进行页面的跳转或呈现

guard let detailPage = DPRouter.shared.page(for: "sub.myhost.com/articles/detail") else {
    return
}
// 在这里进行页面的跳转或者呈现

LICENSE

此项目采用MIT开源协议,点击查看详情

Github

link
Stars: 0

Dependencies

Used By

Total: 0

Releases

修改DPRouterPageProvider的实现方式 - 2020-10-26 12:21:54

修改DPRouterPageProvider的实现方式,使其支持多个URL路由到同一个Page的方式更合理

核心版本 - 2020-10-13 06:58:26

包括以下功能

  • 页面URL注册,及通过URL获取页面实例
  • 闭包注册URL
  • URL的便捷工具