从条形按钮项导航到导航控制器

问题描述

我有一个带有条形按钮项的视图控制器,在这个按钮上有一个操作可以从视图导航到另一个导航视图控制器,但是当我导航到导航控制器时,导航栏被隐藏了!

我的导航代码

guard let window = UIApplication.shared.keyWindow else { return }
    let sb = UIStoryboard(name: "Main",bundle: nil)
    let vc = sb.instantiateViewController(identifier: "AdPostViewController")
    window.rootViewController = vc
    UIView.transition(with: window,duration: 0.5,options: .transitionCrossdissolve,animations: nil,completion: nil)

澄清 我没有在代码中声明 isNavigationBarhidden,我在导航控制器中嵌入了一个视图控制器,当我从主视图控制器导航到导航控制器时,我看到栏被隐藏,我想显示

解决方法

您可以设置isNavigationBarHidden。 Apple 记录如下:

默认值为 false。设置此属性会更改导航栏的可见性,而不会为更改设置动画。如果要为更改设置动画,请改用 setNavigationBarHidden(_:animated:) 方法。

,

我建议不要更改 window.rootViewController,而是向视图控制器显示:

func present(_ viewControllerToPresent: UIViewController,animated flag: Bool,completion: (() -> Void)? = nil)

你的代码变成:

        let sb = UIStoryboard(name: "Main",bundle: nil)
        let vc = sb.instantiateViewController(identifier: "AdPostViewController")
        vc.modalTransitionStyle = .crossDissolve
        self.present(vc,animated: true,completion: nil)

编辑: 您应该检查 AdPostViewController 是否是 Storyboard 中导航控制器的标识符。