在某些视图控制器中隐藏状态栏 *特定*
Posted
技术标签:
【中文标题】在某些视图控制器中隐藏状态栏 *特定*【英文标题】:Hide Status Bar In certain View controllers *Specific* 【发布时间】:2017-09-06 05:43:41 【问题描述】:我有一个关于隐藏状态栏的非常具体的问题。 我合并了下面的代码,以便在每个视图控制器上轻松获取状态栏,但是我有一个不需要状态栏的 cameraViewcontroller。我正在尝试隐藏状态栏。
//change the statusbar color for all view controllers
application.statusBarStyle = .lightContent
我尝试过使用
override var prefersStatusBarHidden: Bool
return true
和
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool
UIApplication.shared.isStatusBarHidden = true
return true
但这些似乎都不起作用。我是编程和堆栈溢出的新手,所以请帮帮我。我尝试寻找答案,但似乎找不到这个特殊困境的答案。您的帮助将不胜感激!谢谢。
【问题讨论】:
【参考方案1】:它非常适合我。
Objective-C
-(BOOL)prefersStatusBarHidden
return YES;
斯威夫特
override var prefersStatusBarHidden: Bool
return true
您还应该使用 info.plist
“查看基于控制器的状态栏外观”设置为 NO
“状态栏最初是隐藏的”设置为YES
【讨论】:
“AppDelegate”中的 application.statusBarstyle = .lightcontent 是否会导致此问题?因为状态栏还在CameraViewController中。我已将“基于视图控制器的状态栏外观”设置为 NO。当我将“状态栏最初隐藏”设置为“是”时,我会丢失其他视图控制器上的所有状态栏。 "statusBarStyle" 已弃用:ios 9.0 @KennyHo 因此,据我了解,按照您使用 Swift 的方式,您必须为所有视图控制器编写代码。有没有办法做类似于 statusBarStyle 的事情,它会自动向我的所有视图控制器添加状态栏?然后我只需要为 CameraVC 去掉一个状态栏。 您还使用“override var preferredStatusBarStyle: UIStatusBarStyle return .lightContent”更改 StatusBarStyle。【参考方案2】:你能在CameraVC中应用下面的代码吗:
override var prefersStatusBarHidden: Bool
return true
【讨论】:
以上是关于在某些视图控制器中隐藏状态栏 *特定*的主要内容,如果未能解决你的问题,请参考以下文章