Route

Route 提供路由跳转功能,支持 pop 和 present。同时解耦页面。

controller 必须实现 RouteProtocol。RouteProtocol 负责实例化 controller 并且传参。

static func instantiate(params: JSON?) -> UIViewController {
        let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "UserViewController") as! UserViewController
        controller.userId = params?["id"].stringValue
        controller.userName = params?["name"].stringValue
        return controller
    }

然后就能注册这个controller到路由里面

Route.register(path: "/user", controller: UserViewController.self)

以后就能通过 url 打开这个 controller

let url = URL(string: "cenarius://route/user?params=%7B%22id%22%3A123%2C%22name%22%3A%22%E4%BA%8C%E5%93%88%22%7D")!
Route.open(url: url, from: self)

/user是path,params是参数的key,value就是后面encode过的JSON字符串。

results matching ""

    No results matching ""