2016-07-25 7 views
0

Поток входа в Google для меня нечетный, и я не уверен, как я могу выполнить segue для отображения VC, который я хотел.google signin и текущий контроллер представления swift

Я следовал знак Google в документации и поток идет как этот

  1. Когда я нажимаю на кнопку Google и войти в систему с помощью аккаунта Google, следующий вызывается из моего LoginVC

    func signInWillDispatch(signIn: GIDSignIn!, error: NSError!) { 
    
  2. Тогда следующая функция вызывается в приложение делегата

    // Google signin 
    func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) { 
    
        if let error = error { 
         print(error.localizedDescription) 
         return 
        } 
    
        let authentication = user.authentication 
        let credential = FIRGoogleAuthProvider.credentialWithIDToken(authentication.idToken, accessToken: authentication.accessToken) 
    
        FIRAuth.auth()?.signInWithCredential(credential) { (user, error) in 
        if let error = error { 
         print("Error Signing in google") 
        } else { 
         print("Google signin successfully \(user?.email)") 
    
        } 
    } 
    

    Здесь я могу получить данные пользователя. Я хочу, чтобы иметь возможность отображать контроллер подробного представления после того, как я получил все данные, которые я хотел от пользователя. Тем не менее, я не могу это сделать с делегата приложения.

Кроме того, в моем LoginVC есть две другие функции google по умолчанию, которые не вызываются, и я не уверен, как ее вызвать. Я считаю, что эти две функции могут быть решением того, что я хотел?

func signIn(signIn: GIDSignIn!, presentViewController viewController: UIViewController!) { 

func signIn(signIn: GIDSignIn!, dismissViewController viewController: UIViewController!) { 

Спасибо,

+0

проверить это ... может быть, вы найдете любое решение http://stackoverflow.com/questions/38539531/custom-google-sign-in-throw-exception-on-gidsignindelegate-protocol/38539698#38539698 –

ответ

0

Это где я могу получить данные пользователя. Я хочу иметь возможность отобразить контроллер подробного представления после того, как я получил все данные, которые я получил от пользователя . Тем не менее, я не могу действительно сделать это из приложения делегата.

Вы можете фактически сделать все, что хотите, с данными и показать свой контроллер.

После того как вы получили все необходимые данные в делегате приложения, передайте данные в NSNotification на базовый контроллер, откуда вы будете нажимать или представлять контроллер подробного представления, и вы можете использовать данные, которые вы передали из NSNotification.

Шаги:

  1. Опубликовать уведомление от приложения делегата вместе с данными, полученными от вызова Google обратно.
  2. Добавить слушателя в базовый класс, откуда вы будете нажимать или представлять подробный вид.
  3. В вызове функции слушателя базового класса извлекают данные, переданные из объекта делегирования приложения, и используют его для ввода или представления контроллера подробного представления.
Смежные вопросы