Я использую Xcode 11 и Swift 5.0. Я скопировал свой код из другого приложения, использующего Swift 4.2. Этот код создает экземпляр tabBarViewController в AppDelegate, изменяет окно на tabBarVC и показывает его, если выполняются определенные условия. Но это не работает в Swift 5.0 и Xcode 11. Вот код:
var window: UIWindow?
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
// Run Firebase
FirebaseApp.configure()
// Check Firebase Auth to see if the user is signed in already.
if Auth.auth().currentUser != nil {
print ("User is already authenticated and signed in.")
// Check to make sure the user is stored in local settings.
if let appUser = LocalStorageService.loadCurrentUser() {
print ("Local storage has a user: \(appUser)")
// Create a tab bar controller.
let tabBarVC = UIStoryboard(name: "Main", bundle: .main).instantiateViewController(withIdentifier: Constants.Storyboard.tabBarController)
// Show it
window?.rootViewController = tabBarVC
window?.makeKeyAndVisible()
}
return true // If auth has a user and there is local user, window changes.
} else {
print ("No Authenticated current user, must proceed with Login.")
return false
}
}
TabBarVC заполнен успешно, но окно остается пустым. Затем приложение показывает другой контроллер представления. Код оригинального приложения, который я вижу, ничем не отличается. И этот до сих пор работает. Мысли будут оценены.