Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про IOS: root, view, controller, uiwindow

В каком методе правильно подменять корневую view контроллера?

Вопрос проверяет знание жизненного цикла приложения и понимание, где корректно управлять корневым экраном.

Короткий ответ

Корневой viewController корректно подменять после создания UIWindow.
Чаще всего это делается в SceneDelegate или AppDelegate.
Подмена выполняется через свойство rootViewController.
Важно, чтобы окно уже существовало и было активным.

Длинный ответ

Подмена корневого контроллера — частая задача при логине, логауте или переключении сценариев приложения.

Где это делать правильно

Перед перечислением важно отметить, что корневой контроллер принадлежит окну, а не отдельному экрану.

1. SceneDelegate

Основное место для iOS 13+.

window?.rootViewController = MainViewController()
window?.makeKeyAndVisible()
  • окно уже создано

  • безопасно менять корневой контроллер

  • подходит для навигации между flow

2. AppDelegate

Используется:

  • в проектах без сцен

  • для поддержки старых версий iOS

Где делать не стоит

  • в viewDidLoad

  • в viewWillAppear

  • внутри обычного UIViewController

Это приводит к некорректному состоянию UI и проблемам с иерархией.

Краткий вывод

Корневой viewController всегда меняется на уровне окна. Лучшее место — SceneDelegate, так как там гарантированно существует UIWindow.

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • IOS

    IOS

Ключевые слова

#root

#view

#controller

#uiwindow

Подпишись на iOS Developer в телеграм

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.