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

时间:2016-10-20 23:00:45

标签: ios swift uinavigationcontroller uinavigationbar uinavigationitem

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

所以上下文如下:

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

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

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

希望问题有道理。

截图

以下是初始设置屏幕:

enter image description here

当我们按下后退按钮时,会发生这种情况......帮助:D

我知道这段代码最有可能导致错误,但我绝对需要在上一个屏幕上隐藏navigationBar。

覆盖func viewWillAppear(_ animated:Bool){

navigationController?.isNavigationBarHidden = true

}

enter image description here

3 个答案:

答案 0 :(得分:13)

您是否尝试过隐藏导航栏的动画方法setNavigationBarHidden(_ hidden: Bool, animated: Bool)

答案 1 :(得分:5)

适用于Swift3.0

在First ViewController中添加以下代码

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

在Second ViewController中添加以下代码

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

答案 2 :(得分:0)

在Second ViewController中添加以下代码

颜色可以对应您的自定义

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


        }