使用Firebase用户注销后,根控制器UINavigationBar消失

时间:2019-02-14 21:11:24

标签: ios swift firebase uinavigationbar

我的UINavigationBar面临一个小问题。

我有一个初始的根视图控制器(ViewController),然后是2个视图控制器(LoginMRNViewController和LoginOTPViewController),它们用于使用一次性密码登录用户。登录后,我还使用了NavigationController来将用户导航到他/她的主页。 在主页上,我有一个(注销)按钮,该按钮使用Firebase注销用户,并将其导航到“初始根视图控制器”(ViewController)。

UINavigationBar就像一个超级按钮,但是,每当用户注销时,他都会导航到“初始根视图控制器”(ViewController),但UINavigationBar会完全消失!

我的注销功能:

@IBAction func logoutPressed(_ sender: Any) {
    do {
        try Auth.auth().signOut()

        self.performSegue(withIdentifier: "goToLoginScreen", sender: self)
        print ("User logged out")
    } catch let error {
        print ("Failed to logout with error", error)
    }
}

这是我的Storyboard的样子。

编辑:

我试图将其放在ViewWillAppear方法的“初始根”视图控制器(ViewController)和其他2个视图控制器(LoginMRNViewController和LoginOTPViewController)中,但不幸的是它没有用。

self.navigationController?.setNavigationBarHidden(false, animated: false)
tabBarController?.tabBar.isHidden = false

这是我更新后的Storyboard的样子。

1 个答案:

答案 0 :(得分:0)

不要添加另一个NavigationController来隐藏后退按钮。

添加navigationItem.setHidesBackButton(true, animated: true)隐藏后退按钮。

然后在注销时只需添加self.navigationController?.popToRootViewController(animated: true)

它应该可以正常工作。