在我的应用程序中,我有两个嵌入在导航控制器中的视图控制器(比如viewControllerA和viewControllerB)。在rootviewcontroller中我不想显示导航栏,所以在viewWillAppear
和viewWillDisappear
中我添加了这些行:
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.setNavigationBarHidden(true, animated: false)
}
override func viewWillDisappear(_ animated: Bool) {
self.navigationController?.setNavigationBarHidden(false, animated: false)
}
现在来自viewcontrollerB,当在导航栏下输入后退按钮时(当它开始消失时),会出现黑色视图。如何删除黑色视图?
P.S。我已将导航栏isTranslucent
设置为false,但它无法解决问题。在我的项目中,我不使用故事板。
答案 0 :(得分:3)
以下基于问题所有者测试项目的答案。
在隐藏和取消隐藏导致黑色视图出现的导航栏时,从测试项目中禁用了navigationController转换(视图到视图)动画。
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.setNavigationBarHidden(true, animated: true) // set to true
}
override func viewWillDisappear(_ animated: Bool) {
self.navigationController?.setNavigationBarHidden(false, animated: true) //set to true
}