Назад к задачам
Middle — Senior
7

Анализ проблем в реализации AppCoordinator

Компании, где спрашивали:

Альфа-БанкАльфа-Банк
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

В данном примере показан класс‑координатор, отвечающий за отображение экрана профиля и обработку события выхода пользователя. Обратите внимание на использование RxSwift, DisposeBag и захват navigationController в замыкании.

final class AppCoordinator {
    let navigationController: UINavigationController
    let disposeBag = DisposeBag()

    func presentProfile() {
        let controller = ProfileController()

        controller.rx.didTapLogout
            .bind(onNext: { [weak navigationController] in
                navigationController?.popToRootViewController(animated: true)
            })
            .disposed(by: disposeBag)

        navigationController.present(controller, animated: true)
    }
}