ZPPRouter
- 面向组件协议
- 组件获取实例为协议类型
ZPPRouter 使用示例:
- 定义 xxxProtocol
public protocol xxxProtocol: UIViewController {
}
- 实现获取方法
extension JLRouteProtocol where Self == ZPPRouter<xxxProtocol> {
@discardableResult
public static func makeDestination(config: ((xxxProtocol) -> Void)) -> xxxProtocol {
let item = makeDestination()
config(item)
return item
}
@discardableResult
public static func makeDestination() -> xxxProtocol {
return UIViewController()
}
}
extension UIViewController: xxxProtocol {}
- 获取 UIViewController
let vc = ZPPRouter<xxxProtocol>.makeDestination()
或者
ZPPRouter<xxxProtocol>.makeDestination {
$0.view.backgroundColor = .red
}
推荐实践
Dome: github.com/ZPP506/ZPPR…