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
}
我认为显示屏幕截图有助于更好地理解问题。
所以上下文如下:
我在导航控制器中,在应用程序的设置屏幕上(它有一个导航项),当我们点击后退按钮时,我们返回到应用程序的主屏幕(为此我我在主屏幕的 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
}