Sobes.tech
Back to tasks
Middle — Senior
62

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

Companies where asked:

Альфа-БанкАльфа-Банк
Get help with live coding in real time with Sobes Copilot
Task condition

В данном примере показан класс‑координатор, отвечающий за отображение экрана профиля и обработку события выхода пользователя. Обратите внимание на использование 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)
    }
}