Какой метод UINavigationController используется для перехода на следующий экран?

«Какой метод UINavigationController используется для перехода на следующий экран?» — вопрос из категории UIKit, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для перехода на следующий экран в стеке навигации используется метод pushViewController(_:animated:).

Как это работает: Метод помещает новый контроллер (UIViewController) на вершину стека навигации, что приводит к анимированному переходу (обычно сдвиг справа налево).

Пример базового использования:

// 1. Создаем экземпляр следующего контроллера
let detailViewController = DetailViewController()
// 2. Выполняем переход
navigationController?.pushViewController(detailViewController, animated: true)

Критические нюансы:

  • Метод доступен только если текущий UIViewController встроен в UINavigationController (свойство navigationController не nil).
  • Параметр animated управляет анимацией перехода. Установка false полезна для программной настройки стека без визуальных эффектов.
  • Для возврата назад используется метод popViewController(animated:).
  • Для сложных сценариев (например, сброс стека или вставка нескольких контроллеров) используйте setViewControllers(_:animated:).