cocoapods组件化(3)

路由器的抉择

swift
关于路由器的选择,GitHub上有很多优秀代码,列如:URLNavigator,但是本人实在不喜欢这种链接形式的。原因如下:

  1. 注册的本身是保存类的字符串形式于字典之中。
  2. 调用跳转方法依然是使用runtime转化为class,再初始化从而完成页面跳转。
  3. 使用class需要借助协议建立初始化方法,这里swift的扩展类无法使用实现初始化方法,而我并不想在原有类中再次实现或者修改初始化方法。
  4. 使用链接传递参数,需要进一步解析转化为字典,为什么不直接使用字典传递参数。

由此我简化以后,依然使用协议作为中间类型,但不再是初始化方法,而是使用静态方法。

static func target(with params: Any) -> UIViewController

使用方法:

navigationController?.push("ModuleA.ViewController", params: 100)
present("ModuleA.ViewController", params: 100)

回调函数:

func dismiss(animated: Bool = true, params: Any? = nil)
func pop(animated: Bool = true, params: Any? = nil)

cocoapods组件化(1)
cocoapods组件化(2)

你可能感兴趣的:(cocoapods组件化(3))