我将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会在所有屏幕上显示,但如果我已经登录,则所有其他屏幕上都缺少导航栏。
我还没有在谷歌上找到解决方案,但我假设我没有找到正确的术语。
非常感谢任何帮助
答案 0 :(得分:0)
我相信这是因为您将root设置为newView而不是从navigationController中推送newView,后者会将其添加到导航堆栈并将栏保持在顶部。 对于导航层次结构,这里有一些阅读: https://medium.com/@strawb3rryx7/swift-the-hierarchy-of-uinavigationcontroller-programmatically-91631990f495