SwiftbookTeam5 / MdEditor

0 stars 0 forks source link

Доработать завершение flow #114

Closed aleksandra-riazanova closed 7 months ago

aleksandra-riazanova commented 7 months ago

Ответ от преподавателя:

следите чтобы при завершении флоу был вызван finishFlow и закрыты все VC этого флоу - как вариант: фиксируйте VC с которого стартовал флоу и возвращайтесь к нему при его флоу завершении, а чтобы завершать флоу по действиям navigationController при нажатии кнопки назад, подпишите координатор на UINavigationControllerDelegate и реализуйте метод, который уведомляет о каждом появлении VC так же можно реализовать кастомную кнопку закрыть, по которой можно вызвать finishFlow стартуйте сцену нового флоу, который должен занять корневой VC у navigationController через

navigationController.setViewControllers([viewController], animated: true)
let topViewController = navigationController.topViewController
self.navigationController.popToViewController(topViewController, animated: true)
// MARK: - UINavigationControllerDelegate

extension FileManagerCoordinator: UINavigationControllerDelegate {

    func navigationController(
        _ navigationController: UINavigationController,
        didShow viewController: UIViewController,
        animated: Bool
    ) {
        if viewController === topViewController {
            finishFlow?()
        }
    }
}

Договоренности на данном этапе развития проекта:

создавать зависимости в соответствующих координаторах, это позволит разгрузить наш SceneDelegate новые сущности, если не находим им места в проекте, создаем в каталоге Entities, потом постараемся улучшить структуру