Мне нужно выполнить следующую проверку в моем 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.