Доступ к экземпляру UIWindow в Xcode 11.3, когда цель ios 11.0 или буква - PullRequest
0 голосов
/ 12 февраля 2020

Проблема в том, что я использую Xcode 11 с новой настройкой AppDelegate / SceneDelegate. Из-за этого UIWindow имеет значение nil, поэтому новый rootViewController не установлен. Я знаю, что в iOS 13 к окну обращаются в SceneDelegate, но целью этого проекта является iOS 11 или буква. Класс SceneDelegate был обработан @available (iOS 13.0, *). Как я могу получить доступ к UIWindow из appDelegate? Я работаю с Xcode 11.3 и Swift 5.0.

1 Ответ

2 голосов
/ 12 февраля 2020

Вот расширение, которое я использую в своем проекте

extension UIWindow {
    static var key: UIWindow? {
        if #available(iOS 13, *) {
            return UIApplication.shared.windows.first { $0.isKeyWindow }
        } else {
            return UIApplication.shared.keyWindow
        }
    }
}

Вот как вы используете это расширение

if let getWindow = UIWindow.key {
    // use getWindow to perform action on window
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...