JLSwiftRouter 1.0.8

JLSwiftRouter 1.0.8

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布日期上次发布2016年4月
SPM支持 SPM

Chester Liu 维护。



  • Chester Liu

SwiftRouter

一个用于 iOS 的 URL 路由器,使用 Swift 2.2 编写,灵感来自 HHRouterJLRoutes

安装

手动

在您的项目中添加 SwiftRouter.swift

使用方法

ViewController 路由

在您的自定义 ViewController 中定义属性

class UserViewController: UIViewController {
    var userId:String?
    var username:String?
    var password:String?
}

将 URL 映射到 ViewController

import SwiftRouter

let router = Router.sharedInstance
router.map("/user/:userId", controllerClass: UserViewController.self)

直接从 URL 获取 ViewController 实例。参数将被自动解析

let vc = router.matchController("/user/1?username=hello&password=123")!
XCTAssertEqual(vc.userId, "1")
XCTAssertEqual(vc.username, "hello")
XCTAssertEqual(vc.password, "123")

这将使用 init() 方法加载控制器。如果您想从 storyboard 加载 view controller - 使用

let vc = router.matchControllerFromStoryboard("/user/1?username=hello&password=123", 
                                              storyboardName: "MyStoryboard")!

此代码将从 MyStoryboard.storyboard 加载控制器。只需记住在 storyboard 中将控制器标识符设置为类名。在此例中为 UserViewController

推送自定义 ViewController

router.routeURL("/user/123", navigationController: self.navigationController!)
// The custom ViewController will be pushed with parameters.

路由处理程序

定义您的自定义处理函数并将其映射到 URL

router.map("/user/add", handler: { (params:[String: String]?) -> (Bool) in
    XCTAssertNotNil(params)
    if let params = params {
        XCTAssertEqual(params["username"], "hello")
        XCTAssertEqual(params["password"], "123")
    }
    return true
})

从路由器调用此处理程序

router.routeURL("/user/add?username=hello&password=123") 
// The handler function will be called with parameters.

许可证

MIT 许可证