我认为显示屏幕截图有助于更好地理解问题。
所以上下文如下:
我在导航控制器中,在应用程序的设置屏幕上(有一个导航项),当我们点击后退按钮时,我们会回到应用程序的主屏幕(我已经为此隐藏了主屏幕viewWillAppear中的导航栏,因为我自己正在构建一个自定义标题视图。
当我点击后退按钮时,导航栏立即消失,我看到一个黑色矩形,直到显示主屏幕的动画完成。
你知道我怎么能避免出现这个黑色矩形吗?
希望问题有道理。
以下是初始设置屏幕:
当我们按下后退按钮时,会发生这种情况......帮助:D
我知道这段代码最有可能导致错误,但我绝对需要在上一个屏幕上隐藏navigationBar。
覆盖func viewWillAppear(_ animated:Bool){
navigationController?.isNavigationBarHidden = true
}
答案 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
}