MasterWorker
MasterWorker 是一个用于解耦 viewControlllers 的路由器
安装
下载并将其放入您的 Swift 项目中
用法
//1. make your viewController routable
extension YourController: MasterWorkerRoutable {
func setupWithPath() {
guard let path = path else {
return
}
path.actionBlock?(self)
}
static func initWith(action: MasterWorkerRouterPathable?) -> UIViewController {
guard let vc = UIStoryboard.init(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "YourController") as? YourController else {
return UIViewController()
}
vc.path = action
return vc
}
}
//2. create your routerPath
enum YourVCType: MasterWorkerRouterPathable {
var viewcontroller: MasterWorkerRoutable.Type {
return YourController.self
}
var actionBlock: ActionBlock? {
switch self {
case .normal(let title):
return {(vc) in
if let vc = vc as? YourController {
vc.label.text = title
}
}
}
}
case normal(title: String)
}
//3. make sure your viewController call setupWithPath when ViewDidLoad
class YourController: UIViewController {
@IBOutlet weak var label: UILabel!
var path: MasterWorkerRouterPathable?
override func viewDidLoad() {
super.viewDidLoad()
setupWithPath()
}
}
//4. in your original viewcontroller callMasterWorkerRouter.open to navigate next viewcontroller
func goToYourController(title: String) {
MasterWorkerRouter.open(current: self, path: YourVCType.normal(title: title))
}