在我的应用程序中,对于特定屏幕,我需要隐藏状态栏。我的屏幕层次结构是:
MainScreen -> ScreenA -> ScreenB -> Screenc
在我的 Screenc 中,我需要隐藏状态栏。所以我是这样的:
override var prefersStatusBarHidden: Bool {
return true
}
一切正常。但是,当我从Screenc
退回时,我的ScreenB, ScreenA
状态栏和导航栏是重叠的。像我的ScreenB, ScreenA
title
,right bar button
一样,它们都与状态栏重叠。但是我的状态栏也显示在ScreenB, ScreenA
中。
不确定为什么会这样。在我的plist文件中,我有:
View controller-based status bar appearance : YES
我无法将其更改为“否”。因为在我的应用程序中,我正在使用将肖像固定到特定的视图控制器。
我如何解决这些问题的任何解决方案?
答案 0 :(得分:1)
您可以做的是在“出现和消失”中显示和隐藏
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.isNavigationBarHidden = true
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.isNavigationBarHidden = false
}
答案 1 :(得分:0)
在viewDidLoad()函数中添加
self.navigationController?.isNavigationBarHidden = true
在先前的ViewController的viewDidAppear方法上添加
self.navigationController?.isNavigationBarHidden = false