2017-09-17 13 views
-1

소셜 로그인과 혼합 된 firebase에 관한 letsbuildthatapp의 자습서 비디오를 끝내기 만하면됩니다.performSegue가 작동하지 않음 FireBase가 사용자 인증을 확인하는 동안 Swift 3/4

사용자가 이미 인증 된 경우 현재 segue를 수행하려고합니다.

나는 테스트를 위해 사용하고 있기 때문에 내가 일을 알고있는 segue로 performSegue를 실행 한 직후에 뭔가를 인쇄합니다.

내 코드

func verifDejaConnecter() { 
    if Auth.auth().currentUser?.uid != nil { 
     performSegue(withIdentifier: "segueAccueilToPres", sender: nil) 
     print("test") 
    } else { 
     return 
    } 
} 

mySegue이 만들어지고 작동하지만 아무것도 여기에 추가되어있다. 내가 시도 테스트는 아무것도 mooving되지 않는 경우 ...하지만

+0

어디서 verifDejaConnecter를 부르시겠습니까? –

답변

0

에 인쇄로 인한 볼 수있는 콘솔에서

이 : 다른 컨트롤러를 표시 할 경우 열 때

func verifDejaConnecter() { 
    if Auth.auth().currentUser?.uid != nil { 
    DispatchQueue.main.async { 
     self.performSegue(withIdentifier: "segueAccueilToPres", sender: self) 
     print("test") 
    } 
    } else { 
    return 
    } 
} 
+0

멋지게 잘 작동합니다 DispatchQueue.main.async가 많은 도움을 주는지 이해하려고 시도합니다 :) –

+0

주 스레드에서 코드가 실행됩니다. 주 스레드에서 항상 UI 업데이트를 수행합니다. :-) –

0

응용 프로그램이 사용자가 로그인되어 있다면, 나는 다른 컨트롤러를 인스턴스화하는 것이 좋습니다 ... Heres이 코드를 사용하고 있습니다. (AppDelegate에에서)

if ((Auth.auth().currentUser) != nil) 
    { 
     initialViewController = mainStoryboard.instantiateViewController(withIdentifier: "tabBarController") as! UITabBarController // or UIViewController depending on your setup. 
    } 
    else 
    { 
     initialViewController = mainStoryboard.instantiateViewController(withIdentifier: "LoginController") as! 
     LoginController // or your login controller. 
    } 

    self.window?.rootViewController = initialViewController 

    self.window?.makeKeyAndVisible() 

는 여기서 "인 LoginController"& "tabBarController는"당신이 입력해야합니다 정체성, 스토리 보드 ID로 스토리 보드 신원 관리자에이.

+0

좋아, 데이빗을 도와 주셔서 감사합니다. :) –