2016-07-25 69 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. 在基類的偵聽器函數調用中,檢索從應用程序委託對象傳遞的數據,並使用它來推送或顯示詳細視圖控制器。