Ответ
UIWindow наследуется от UIView.
Это делает его специализированным контейнером, который управляет всей иерархией представлений (UIView) в приложении. Его ключевые обязанности:
- Координация отрисовки: Управляет процессом рендеринга всех вложенных
UIView. - Доставка событий: Является точкой входа для событий (касания, движения, встряхивания) и направляет их соответствующему представлению.
- Управление корневым контроллером: Содержит свойство
rootViewController, которое определяет начальный контроллер интерфейса.
Пример создания и настройки окна:
// 1. Создание окна с размерами экрана устройства
let window = UIWindow(frame: UIScreen.main.bounds)
// 2. Назначение корневого контроллера представлений
window.rootViewController = MyViewController()
// 3. Делаем окно ключевым и видимым
window.makeKeyAndVisible()
В современных приложениях на основе UIScene окно обычно создается и управляется автоматически фреймворком в SceneDelegate.