首页 > 解决方案 > 程序化导航控制器不可见?

问题描述

我正在尝试以编程方式在我的应用程序中嵌入导航控制器,但无法这样做。我不知所措,因为在线教程完全按照我的方式进行,但我的导航栏仍然无法显示。

我的应用委托如下:

 var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    window = UIWindow()
    window?.makeKeyAndVisible()
    let navController = UINavigationController(rootViewController: ViewController())
    window?.rootViewController = navController
    navController.navigationBar.barStyle = UIBarStyle.black
    navController.navigationBar.barTintColor = #colorLiteral(red: 1, green: 0.3965077436, blue: 0.2242108541, alpha: 1)

    return true
}

我的 ViewController 代码如下:

 override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .white
        navigationItem.title = "Navigation Controller"
        navigationController?.navigationBar.isTranslucent = false

我在哪里出错?

标签: swift

解决方案


使用这个SceneDelegate

    var window: UIWindow?

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {

    guard let windowScene = (scene as? UIWindowScene) else { return }

    var rootVC = ViewController() //Your view controller

    self.window = UIWindow(windowScene: windowScene)

    let rootNC = UINavigationController(rootViewController: rootVC)
    rooNC.navigationBar.barStyle = UIBarStyle.black
    rootNC.navigationBar.barTintColor = #colorLiteral(red: 1, green: 0.3965077436, blue: 0.2242108541, alpha: 1)

    self.window?.rootViewController = rootNC
    self.window?.makeKeyAndVisible()        

}

推荐阅读