Выбор ответа Junior Навигация, координаторы и deep links спрашивают часто обновлено
Зачем нужен Coordinator
Вопрос
Какую проблему решает паттерн Coordinator в iOS?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Убирает из контроллеров знание о соседних экранах: переходы и сборку делает отдельный объект. Без координатора экран A создаёт экран B и сам делает push: экраны связаны, их нельзя переиспользовать в другом потоке, а deep link требует знать цепочку контроллеров.
Варианты ответа
- Ускоряет анимации переходов: координатор заранее создаёт следующий экран в фоне
- Убирает из контроллеров знание о соседних экранах: переходы и сборку делает отдельный объектправильный ответ
- Заменяет
UINavigationControllerсобственным стеком экранов, который проще тестировать и расширять - Сохраняет состояние экранов на диск, чтобы поток восстанавливался после выгрузки приложения
Разбор
Без координатора экран A создаёт экран B и сам делает push: экраны связаны, их нельзя переиспользовать в другом потоке, а deep link требует знать цепочку контроллеров. Координатор владеет навигацией, а экран лишь сообщает «пользователь выбрал товар». UINavigationController при этом используется как инструмент, анимации и сохранение состояния тут ни при чём.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.