Swift 4:NavigationController在后续页面上不显示栏

时间:2018-04-19 15:22:49

标签: ios swift uinavigationcontroller

我将LoginVC嵌入了NavigationController,并在登录时将用户推送到SwitchboardVC。

如果用户已经登录,我在didFinishLaunchingWithOptions的AppDelegate中使用此代码绕过登录屏幕:

if Auth.auth().currentUser != nil
{
    let mainStoryBoard: UIStoryboard = UIStoryboard(name:"Main", bundle:nil)
    let nextView: SwitchboardVC = mainStoryBoard.instantiateViewController(withIdentifier: "SwitchboardVC") as! SwitchboardVC
    self.window?.rootViewController = nextView
}

当我必须登录时,NavigationBar会在所有屏幕上显示,但如果我已经登录,则所有其他屏幕上都缺少导航栏。

我还没有在谷歌上找到解决方案,但我假设我没有找到正确的术语。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

我相信这是因为您将root设置为newView而不是从navigationController中推送newView,后者会将其添加到导航堆栈并将栏保持在顶部。 对于导航层次结构,这里有一些阅读: https://medium.com/@strawb3rryx7/swift-the-hierarchy-of-uinavigationcontroller-programmatically-91631990f495