ios swift - 返回到隐藏导航栏的屏幕时,导航项背景变黑

ios swift - navigation item background turns black when going back to a screen where the navigation bar is hidden

我认为显示屏幕截图有助于更好地理解问题。

所以上下文如下:

我在导航控制器中,在应用程序的设置屏幕上(它有一个导航项),当我们点击后退按钮时,我们返回到应用程序的主屏幕(为此我我在主屏幕的 viewWillAppear 中隐藏了导航栏,因为我自己正在构建自定义 header 视图。

当我点击后退按钮时,导航栏立即消失,我看到一个黑色矩形出现,直到显示主屏幕的动画完成。

你知道我怎样才能避免出现这个黑色矩形吗?

希望问题有意义。

截图

这是初始设置屏幕:

当我们在后退按钮上贴上胶带时,会发生这种情况...求助:D

我知道这段代码很可能是导致错误的原因,但我绝对需要在上一个屏幕上隐藏导航栏。

override func viewWillAppear(_ animated: Bool) {

navigationController?.isNavigationBarHidden = true

}

你试过动画隐藏导航栏的方法吗setNavigationBarHidden(_ hidden: Bool, animated: Bool)?

对于 Swift3.0

首先添加以下代码ViewController

override func viewWillAppear(_ animated: Bool) {
     super.viewWillAppear(true)
     navigationController?.setNavigationBarHidden(true, animated: animated)
}

在第二个中添加以下代码ViewController

func backButtonPressed() {
    navigationController?.setNavigationBarHidden(false, animated: false)
    navigationController?.popViewController(animated: true)
}

在 Second 添加以下代码 ViewController

颜色可以对应您的定制

 override func viewWillAppear(_ animated: Bool) {
              self.navigationController?.view.backgroundColor = UIColor.white


        }