2016-07-25 70 views
0

谷歌登录流对我来说有点奇怪,我不知道如何执行segue来显示我想要的VC。谷歌登录和当前视图控制器迅速

我跟随在文档中的谷歌标志和流程是这样的

  1. 当我点击谷歌的按钮,并与我的谷歌帐号登录,下面会从我的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. 后从应用程序的委托与数据一起通知收到 从谷歌的回电。
  2. 将侦听器添加到您将推送或显示详细视图的基类中。
  3. 在基类的侦听器函数调用中,检索从应用程序委托对象传递的数据,并使用它来推送或显示详细视图控制器。