在 iOS Swift 上隐藏状态栏
Hide status bar on iOS Swift
在我的应用程序中,对于特定屏幕,我需要隐藏状态栏。我的屏幕层次结构是:
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
我无法将其更改为否。因为在我的应用程序中,我正在使用将肖像固定到特定 viewcontroller。
关于如何解决这些问题的任何解决方案?
在viewDidLoad()函数中添加
self.navigationController?.isNavigationBarHidden = true
并且在您之前的ViewController viewDidAppear 方法中添加
self.navigationController?.isNavigationBarHidden = false
你可以做的就是在出现和消失中显示和隐藏
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.isNavigationBarHidden = true
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.isNavigationBarHidden = false
}
在我的应用程序中,对于特定屏幕,我需要隐藏状态栏。我的屏幕层次结构是:
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
我无法将其更改为否。因为在我的应用程序中,我正在使用将肖像固定到特定 viewcontroller。
关于如何解决这些问题的任何解决方案?
在viewDidLoad()函数中添加
self.navigationController?.isNavigationBarHidden = true
并且在您之前的ViewController viewDidAppear 方法中添加
self.navigationController?.isNavigationBarHidden = false
你可以做的就是在出现和消失中显示和隐藏
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.isNavigationBarHidden = true
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.isNavigationBarHidden = false
}