我必须在协调器代码中使用NavigationController吗?

时间:2019-02-16 19:04:16

标签: swift4 coordinator-pattern transition-coordinator

我正在重构代码,想尝试一下协调员。

但是,我对负责UINavigationController的情况不太满意,因为它会在子坐标上创建一个“后退”按钮,以及一个不需要的顶部栏。

无论如何,我可以使用普通的UIViewController代替UINavigationController吗?

P.S:这是我在[这里] [1]

中找到的示例代码

协议协调人{     func start() }

协议FlowACoordinatable {     var协调器:FlowACoordinator }

FlowACoordinator类:协调器{

private var navigationController: UINavigationController

private var firstVC: FirstViewController
private var secondVC: SecondViewController

init(navigationController: UINavigationController) {
    self.navigationController = navigationController
}

func start() { ... }

func present(_ viewController: (FlowACoordinatable & UIViewController)) {
    viewController.coordinator = self
    self.navigationController.pushViewController(viewController, animated: true)
}

...

}

FirstViewController类:UIViewController,FlowACoordinatable {

var coordinator: FlowACoordinator?

func buttonTapped() {
    self.coordinator?.goToNextStep()
}

}

1 个答案:

答案 0 :(得分:2)

回答我自己的问题...

协调器架构基于UINavigationController,并且不能UIViewController取代。

但是,仍然可以使用 Object Inspection 隐藏对接栏窗格,并选中隐藏对接栏... 或进行by code。 / p>