UINavigationBar 不显示

UINavigationBar not showing

我有一个 swift 项目,它是程序化的,可以从一个地图视图切换到另一个视图。在 segue 之后,导航栏不存在。由于文件是从一个没有发生这种情况的早期项目复制过来的,我很困惑。应该是很直接的。

在 AppDelegate 中:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    window = UIWindow(frame: UIScreen.main.bounds)
    let homeViewController = MapViewController()

    self.navigationController = UINavigationController()
    self.navigationController?.setNavigationBarHidden(false, animated: false)
    navigationController?.viewControllers = [homeViewController]
    self.window!.rootViewController = navigationController
    self.window?.makeKeyAndVisible()

    let attributes = [NSAttributedStringKey.font: UIFont(name: "HelveticaNeue-Light", size: 17)!]
    UINavigationBar.appearance().titleTextAttributes = attributes

    return true
}

以及在 MapViewController 中调用的 segue 代码:

    let storeViewController = ViewController()
    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    appDelegate.navigationController?.setNavigationBarHidden(false, animated: false)
    appDelegate.navigationController?.pushViewController(storeViewController, animated: true)

您必须在 UINavigationController 中嵌入 MapViewController 并根据需要推送 ViewControllers

隐藏使用self.navigationController?.isNavigationBarHidden = false

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

            // Override point for customization after application launch.
            window = UIWindow(frame: UIScreen.main.bounds)

            let homeViewController = MapViewController()
            let navController  = UINavigationController(rootViewController: homeViewController)

            self.window!.rootViewController = navController
            self.window?.makeKeyAndVisible()

            let attributes = [NSAttributedStringKey.font: UIFont(name: "HelveticaNeue-Light", size: 17)!]
            UINavigationBar.appearance().titleTextAttributes = attributes

        return true
    }

并在 MapViewController

导航:

    let storeViewController = ViewController()
    self.navigationController?.pushViewController(storeViewController, animated: true)

    //if you want to hide or show navigation
   //self.navigationController?.isNavigationBarHidden = false // true