Я выполняю рефакторинг своих кодов и хочу попробовать Координаторам.
Однако мне не совсем комфортно с ответственным UINavigationController
, потому что он создает кнопку «Назад» для дочерних координат, а также нежелательныеверхний бар, который мне не нужен.
Можно ли вообще использовать обычный UIViewController
вместо UINavigationController
?
PS: это пример кода, который я нашел [Здесь] [1]
Координатор протокола {func start ()}
Протокол FlowACoordinatable {var координатор: FlowACoordinator}
класс FlowACoordinator: Coordinator {
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)
}
...
}
class FirstViewController: UIViewController, FlowACoordinatable {
var coordinator: FlowACoordinator?
func buttonTapped() {
self.coordinator?.goToNextStep()
}
}