2017-01-25 18 views
0

В моем приложении я хочу отображать различные ViewControllers в зависимости от того, был ли пользователь уже зарегистрирован или нет. Например, если пользователь зарегистрирован в текущем VC_A, если нет, укажите VC_B. Я попытался следующий код в моем vc_login:Показать контроллер просмотра на основе пользователей Состояние входа в Firebase

if let user = FIRAuth.auth()?.currentUser { 

     let vc = self.storyboard?.instantiateViewController(withIdentifier: "vc_home") as! ViewController_Home 
     self.present(vc, animated: true, completion: nil) 

    } else { 

    // Do Nothing 

    } 
+0

Ваш оригинальный код с заполненным блоком else был более информативным в этом вопросе, чем '// ничего не делать' – muescha

+0

Как вы справляетесь с истечением срока годности Firebase? – Jay

+0

Im делает почти то же самое и работает на меня. если FIRAuth.auth() ?. currentUser! = Nil { self.performSegue (withIdentifier: "signInToTabbarVC", отправитель: nil) } –

ответ

1

Вы можете сделать это так (подсказки в комментариях к коду):

if FIRAuth.auth()?.currentUser?.uid == nil { 
    // user is not logged in 
    // present VC_B 
} else { 
    // user is logged in 
    // present VC_A 
} 

Или вы можете использовать тройной условный оператор так:

FIRAuth.auth()?.currentUser?.uid == nil ? presentViewControllerB() : presentViewControllerA() 

func presentViewControllerA() { 
    // call if logged in 
} 

func presentViewControllerB() { 
    // call if not logged in 
}