Когда создается экземпляр UIViewController в iOS?

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

Ответ

Экземпляр UIViewController создается в следующих случаях:

1. Программно (из кода):

// Через кастомный инициализатор
let vc1 = MyCustomViewController()

// Через инициализатор для NIB-файла
let vc2 = MyViewController(nibName: "MyView", bundle: nil)

2. Из Storyboard:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "ProfileVC") as! ProfileViewController

3. Из SwiftUI (с помощью UIViewControllerRepresentable): Система создает и управляет экземпляром контроллера в методах makeUIViewController(context:) и updateUIViewController(_:context:).

4. При навигации:

  • При вызове present(_:animated:completion:) для модального показа.
  • При вызове pushViewController(_:animated:) в UINavigationController.

Ключевые этапы жизненного цикла: Создание (init) → Загрузка view (loadView/viewDidLoad) → Появление на экране (viewWillAppear). Контроллеры из Storyboard инициализируются через init(coder:).