Вопрос проверяет умение применять паттерн координаторов (Coordinators) для навигации без прямых ссылок между контроллерами.
Короткий ответ
Создайте базовый протокол Coordinator с методами start() и свойством childCoordinators. Для экрана логина — AuthCoordinator, для основного — MainCoordinator. Когда логин успешен, из AuthCoordinator вызываете finish(), а из родительского AppCoordinator запускаете MainCoordinator и меняете корневой контроллер.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.