iOS Swift 组件路由实现

663 阅读1分钟

ZPPRouter

  1. 面向组件协议
  2. 组件获取实例为协议类型

ZPPRouter 使用示例:

  1. 定义 xxxProtocol
public protocol xxxProtocol: UIViewController {
    
}

  1. 实现获取方法
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 {}

  1. 获取 UIViewController
let vc = ZPPRouter<xxxProtocol>.makeDestination()

或者

ZPPRouter<xxxProtocol>.makeDestination {
   $0.view.backgroundColor = .red
}

推荐实践

Dome: github.com/ZPP506/ZPPR…