Ответ
Экземпляр 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:).