2017-09-08 5 views
0

Google-SignIn SDKを使用してユーザーを認証する必要があります。 クラスのUIViewcontrollerクラスで使用すると正常に機能しました。 私は別のクラスでsignInメソッドを実装する必要がありますが、正常に動作するにはどうすればよいですか? 私は(ログイン呼んでログインを開始する必要があるときに私GoogleLoginクラスがGoogleのサインインが非UIViewControllerで起動しない

import Foundation 
import GoogleSignIn 

class GoogleLogin:NSObject, LoginAuthProtocol, GIDSignInDelegate, GIDSignInUIDelegate{ 

    weak var googleView: UIViewController! 

    init(view: UIViewController) { 
     super.init() 
     googleView = view 

     GIDSignIn.sharedInstance().clientID = "1017499022947-4d73nf64.apps.googleusercontent.com" 
     GIDSignIn.sharedInstance().uiDelegate = self 
     GIDSignIn.sharedInstance().delegate = self 
    } 

    func login() { 
     GIDSignIn.sharedInstance().signIn() 
    } 

    func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) { 
     if error != nil{ 
      print("*****error \(error.localizedDescription) ******") 
      return 
     } 
     print(user.profile.email) 
    } 

    func sign(inWillDispatch signIn: GIDSignIn!, error: Error!) { 

    } 

    func sign(_ signIn: GIDSignIn!, present viewController: UIViewController!) { 
     googleView.present(viewController, animated: true, completion: nil) 
    } 

    func sign(_ signIn: GIDSignIn!, dismiss viewController: UIViewController!) { 
     googleView.dismiss(animated: true, completion: nil) 
    } 

} 

のように見えている)私のルートのViewControllerとパスの自己からのメソッドは、パラメータとして

GoogleLogin(view: self).login() 

が、何も呼び出し後に起こりません!

答えて

0

問題は、それがあるべき私は

GoogleLogin(view: self).login() 

に同時に初期化して、コールのログインで

let googleLogin = GoogleLogin(view: self) 
googleLogin.login() 
関連する問題