У меня есть следующий код, где я пытаюсь получить sh Home2ViewController (контроллер панели вкладок), поэтому пользователь будет перенаправлен на него после процедуры входа в Google:
let viewController: Home2ViewController = storyboard.instantiateViewController(withIdentifier: "HomeVC") as! Home2ViewController;
// error occurs on the following line
let rootViewController = self.window!.rootViewController as! UINavigationController;
rootViewController.pushViewController(viewController, animated: true);
I получаю сообщение об ошибке:
Неожиданно обнаружен ноль при развертывании необязательного значения
во второй строке кода, где я определяю rootViewController
.
Home2ViewController
является подклассом UITabBarController
и идентифицируется с HomeVC
в раскадровке.
Как можно решить эту ошибку, чтобы после процедуры входа в Google отображался правильный контроллер?
Редактировать: полный код метода входа в Google из AppDelegate. .
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
if let err = error {
print("Failed to log into Google", err)
return
}
guard let idToken = user.authentication.idToken else {return}
guard let accessToken = user.authentication.accessToken else {return}
let credentials = GoogleAuthProvider.credential(withIDToken: idToken,accessToken: accessToken)
print("Successfully logged into Google", user)
Auth.auth().signInAndRetrieveData(with: credentials, completion: { (user, error) in
if let err = error {
print("Failed to create a Firebase user with Google account", err)
return
}
print("Successfully logged into Firebase with Google")
let storyboard = UIStoryboard(name: "Main", bundle: nil);
guard let initialViewController = storyboard.instantiateViewController(withIdentifier: "HomeVC") as? Home2ViewController else { return }
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
})
}