Ответ
viewDidLoad() — это метод жизненного цикла UIViewController, который вызывается один раз после загрузки view-иерархии контроллера в память, но до её отображения на экране.
Типичные задачи в viewDidLoad():
- Настройка UI-компонентов — установка заголовка, цвета фона, добавление subviews.
- Инициализация данных — загрузка начальных данных для отображения (лёгкие операции).
- Настройка делегатов и источников данных —
tableView.delegate = self. - Регистрация ячеек или xib/nib-файлов.
Пример:
class SettingsViewController: UIViewController {
@IBOutlet private weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// 1. Базовая настройка
title = "Settings"
view.backgroundColor = .systemGroupedBackground
// 2. Настройка таблицы
tableView.delegate = self
tableView.dataSource = self
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")
// 3. Загрузка данных
loadSettings()
}
}
Чего НЕ следует делать в viewDidLoad():
- Работу с геометрией view (размеры, frame) — используйте
viewDidLayoutSubviews(). - Тяжёлые сетевые запросы или блокирующие операции — лучше в
viewWillAppear()или отдельной фоновой задаче.
Почему важен: Это основная точка инициализации UI-контроллера, где гарантировано наличие загруженной view-иерархии.