От какого класса наследуется UIWindow в UIKit?

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

Ответ

UIWindow наследуется от UIView.

Это делает его специализированным контейнером, который управляет всей иерархией представлений (UIView) в приложении. Его ключевые обязанности:

  • Координация отрисовки: Управляет процессом рендеринга всех вложенных UIView.
  • Доставка событий: Является точкой входа для событий (касания, движения, встряхивания) и направляет их соответствующему представлению.
  • Управление корневым контроллером: Содержит свойство rootViewController, которое определяет начальный контроллер интерфейса.

Пример создания и настройки окна:

// 1. Создание окна с размерами экрана устройства
let window = UIWindow(frame: UIScreen.main.bounds)

// 2. Назначение корневого контроллера представлений
window.rootViewController = MyViewController()

// 3. Делаем окно ключевым и видимым
window.makeKeyAndVisible()

В современных приложениях на основе UIScene окно обычно создается и управляется автоматически фреймворком в SceneDelegate.