Выполнить Segue от App Delegate - Swift - PullRequest
0 голосов
/ 26 июня 2018

Я использую Firebase и GoogleSignIn, чтобы зарегистрировать пользователя в моем приложении для iOS. Я написал весь код в соответствии с инструкциями в файле AppDelegate.swift. После успешного входа в систему я хочу перевести пользователя на другой ViewController. Мой текущий код:

func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
    if (error) != nil {
        return
    }

    print("User signed into Google")
    guard let authentication = user.authentication else { return }
    let credential = FIRGoogleAuthProvider.credential(withIDToken: authentication.idToken,
                                                   accessToken: authentication.accessToken)

    FIRAuth.auth()?.signIn(with: credential, completion: { (user, error) in
        print("User Signed In to Firebase")

        self.databaseRef = FIRDatabase.database().reference()

        self.databaseRef.child("Google User Profiles").child(user!.uid).observeSingleEvent(of: .value, with: { (snapshot) in

            let snapshot = snapshot.value as? NSDictionary

            if(snapshot == nil)
            {
                self.databaseRef.child("Google User Profiles").child(user!.uid).child("name").setValue(user?.displayName)
                self.databaseRef.child("Google User Profiles").child(user!.uid).child("email").setValue(user?.email)
            }


        })

    })
}

1 Ответ

0 голосов
/ 26 июня 2018

Сначала зайдите в свою раскадровку и установите ID раскадровки для своего viewController. ID раскадровки Затем перейдите в ваш viewController и добавьте эти методы в ваш класс.

import UIKit

class ViewController2: UIViewController {

    // Change the name of the storyboard if this is not "Main"
    // identifier is the Storyboard ID that you put juste before
    class func instantiate() -> ViewController2 {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let viewController = storyboard.instantiateViewController(withIdentifier: "\(ViewController2.self)") as! ViewController2

        return viewController
    }

}

Затем в вашем делегате приложения, когда вы хотите показать viewController, выполните

window?.rootViewController = ViewController2.instantiate()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...