Pu sh контроллер панели вкладок от App Delegate - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть следующий код, где я пытаюсь получить 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()

        })        
    }

1 Ответ

0 голосов
/ 05 апреля 2020

Это может звучать глупо, просто убедитесь, что имя идентификатора точно такое же, и если это не решило проблему, замените ее на что-то другое в storyBoard и коде, это случилось со мной однажды и это решило проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...