Какие основные методы жизненного цикла UIViewController и в каком порядке они вызываются?

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

Ответ

Порядок вызовов методов жизненного цикла UIViewController:

  1. Загрузка view:

    loadView() // Создание иерархии view (вызывается, если view == nil)
    viewDidLoad() // Настройка после загрузки (вызывается 1 раз)
  2. Появление на экране:

    viewWillAppear(_:) // Перед появлением
    viewWillLayoutSubviews() // Перед расчетом layout
    viewDidLayoutSubviews() // После расчета layout
    viewDidAppear(_:) // После полного появления
  3. Исчезновение с экрана:

    viewWillDisappear(_:) // Перед исчезновением
    viewDidDisappear(_:) // После полного исчезновения

Практический пример:

class MyViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Инициализация данных и настройка UI
        configureTableView()
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        // Обновление данных перед показом
        loadLatestData()
    }

    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        // Очистка ресурсов при скрытии
        clearCache()
    }
}

Важно: Всегда вызывайте соответствующие методы super для корректной работы родительских классов.