我有一些代码只在第一次启动应用时在我的故事板中显示第一个视图控制器。之后我想跳过那个页面并在每次发布时直接进入我的第二个视图。我在导航控制器中嵌入了第一个视图(连接到第二个视图)。
我的问题是,在第一次启动后应用程序直接进入第二个视图时,它显示的视图没有顶部的导航栏,我不确定原因。
在我的appdelegate中:
func firstLaunchCheck(){
let launchedBefore = UserDefaults.standard.bool(forKey: "launchedBefore")
if launchedBefore{
let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let initialView : UIViewController = storyboard.instantiateViewController(withIdentifier: "mainScreen") as UIViewController
self.window = UIWindow(frame: UIScreen.main.bounds)
self.window?.rootViewController = initialView
self.window?.makeKeyAndVisible()
}
else{
UserDefaults.standard.set(true, forKey: "launchedBefore")
}
}
更新 我只是改变了哪个视图控制器嵌入在导航控制器中(排除了第一个),因为我没有意义将它放在那里。所以现在在第一次启动后加载导航控制器
答案 0 :(得分:0)
SecondViewController
未添加到UINavigationController
层次结构中,如果在appDelegate中的launchBefore为false,则可以在{vn}上推送navigationBar
以查看SecondViewController
1>}
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let secondVC = storyboard.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
let navigationController = window.rootViewController as! UINavigationController
navigationController?.pushViewController(secondVC, animated: false)
答案 1 :(得分:0)
你需要嵌入第二个视图控制器,即" mainScreen"在UINavigationController中,然后将其设置为应用程序窗口的rootViewController。
let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let navigationController = UINavigationController.init(rootViewController: storyboard.instantiateViewController(withIdentifier: "mainScreen"))
self.window = UIWindow(frame: UIScreen.main.bounds)
self.window?.rootViewController = initialView
self.window?.makeKeyAndVisible()