2017-10-27 6 views
0

initial ViewController으로 설정하면 Firebase, Google Sign In을 내 ios 앱의 AuthViewController에 통합했습니다.Google Firebase 로그인이 끝나면 AppDelegate에서 ViewController로 이동합니다.

사용자가 Google 로그인 버튼을 사용하여 로그인하면 그는 (AuthViewController)으로 다시 리디렉션됩니다. 즉, 로그인 한 상태에서 Google 로그인 버튼을 표시합니다.

질문 :

나는 사용자가 로그인 한 후 특정 ViewController로 리디렉션 구성 할 수있는 방법이 있나요? 나는 아래와 같은 기능을 사용하여 내가 AppDelegate 년대에서 프로그래밍을 할 수있는 방법을 알 필요가없는 경우

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

     guard let authentication = user.authentication else { return } 
     let credential = GoogleAuthProvider.credential(withIDToken: authentication.idToken, 
                 accessToken: authentication.accessToken) 
     Auth.auth().signIn(with: credential) { (user, error) in 
      if let error = error { 
       // ... 
       return 
      } 
      // User is signed in 
      // ... 
     } 
    } 
내가 이미 SEGUE가 MainViewController에 SEGUE 내 AuthViewController에 정의 된, 그러나 중포 기지 인증과 같은 한

는 비동기 호출입니다 및 userAuthenticated() 기능은 우리가 viewDidAppear 함수 호출 시간 false을 반환

override func viewDidAppear(_ animated: Bool) { 
     print("--------View Did Appear \(userAuthenticated())") 
     if userAuthenticated() { 
      self.performSegue(withIdentifier: "showMain", sender: nil) 
     } 
    } 


    func userAuthenticated() -> Bool { 
     return (Auth.auth().currentUser != nil) ? true : false 
    } 

편집 : 원사의 접근 방식으로 , 그것은 .. 문제를 해결하지만, 먼저 AuthViewController의보기을 보여주고 있지만 D는 내가 직접 MainViewController 고토하기 위해 사용자가 한 번 로그인 할 .. 보여 MainViewController ... 그것의 나쁜 UI 경험을 segues.

답변

1

프로그램 AppDelegate에에서 SEGUE하기 위해 전화 할 수

if let rootVC = window?.rootViewController { 
    rootVC.performSegue(withIdentifier: "segue", sender: self) 
} 
+0

될 것입니다 무엇 이 경우에 'segue'식별자는 무엇입니까? 나는'source '컨트롤러와'destination' 컨트롤러가 무엇을 의미합니까? –

+0

segue 식별자는 "showMain"입니다. 루트 뷰 컨트롤러는 초기보기 컨트롤러로 설정했기 때문에 'AuthViewController'입니다. 목적지는 "showMain"segue의 다른 끝에있는'MainViewController'입니다. – Yarn

+0

'AuthViewController'는 UINavigationController에 내장되어 있습니까? – Yarn