原ViewController 必须直接依赖目标ViewController
- 这样会导致模块之间相互依赖如图所示
路由方案解决各个模块之间的导航问题
路由模块
路由模块由两个AppRouting(protocol)和AppRouter(class)组成
AppRouting 协议
- 定义了路由模块的接口,
protocol AppRouting {
func register(path: String, navigator: Navigating)
func route(to url: URL?, from routingSource: RoutingSource?, using transitionType: TransitionType)
}
- 用于注册:导航器
2.整套系统是基于URL的