Доступ к экземпляру UIWindow в Xcode 11, когда целью является ios 12 - PullRequest
1 голос
/ 25 октября 2019

Мне нужно выполнить следующую проверку в моем AppDelegate

var window: UIWindow?

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    // If logged in, jump to tabs
    let isUserLoggedIn = UserDefaults.standard.bool(forKey: "isUserLoggedIn")
    print(isUserLoggedIn)

    if isUserLoggedIn {
        let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let tabBarController = storyboard.instantiateViewController(withIdentifier: "tabs") as! TabBarController
        self.window?.rootViewController = tabBarController
        self.window?.makeKeyAndVisible()
    }
    return true
}

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

Как я могу получить доступ к UIWindow из appDelegate или как заставить работать приведенный выше код?

Я работаю с Xcode 11 иSwift 4.2.

...