Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Swift : lifecycle, viewcontroller

Жизненный цикл ViewController. Если вызвался viewWillAppear, вызовется ли viewDidAppear?

Вопрос проверяет знание этапов жизненного цикла UIViewController.

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

Да, если вызвался viewWillAppear, то viewDidAppear вызовется следом, если только процесс не был прерван (например, аварийно).

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

1. Основные этапы жизненного цикла:

  • viewDidLoad — загрузка представления (вызывается один раз).

  • viewWillAppear — перед появлением на экране.

  • viewDidAppear — после появления.

  • viewWillDisappear — перед исчезновением.

  • viewDidDisappear — после исчезновения.

2. Пример последовательности:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    print("View скоро появится")
}

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    print("View появилось")
}

3. Исключения:

  • Если приложение аварийно завершится между вызовами.

  • Если view не была добавлена в иерархию окон.

Вывод:
viewDidAppear гарантированно вызывается после viewWillAppear в нормальных условиях.

Уровень

  • Рейтинг:

    2

  • Сложность:

    5

Навыки

  • Swift

    Swift

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

#lifecycle

#viewcontroller

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