【发布时间】:2016-11-24 16:18:16
【问题描述】:
我的主要初始 ViewController 需要一个白色状态栏,但也可以将其隐藏在另一个 ViewController 中。我可以做一个或另一个,但不能同时做。有什么建议吗?
我通过设置将其设置为白色
查看控制器状态栏外观键为NO Info.plist
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .LightContent
}
并隐藏它(在另一个以模态方式呈现的 ViewController 上)我会这样做,
override func prefersStatusBarHidden() -> Bool {
return statusBarHidden
}
但它不会隐藏,除非我删除了之前添加到 Info.plist 中的键,但如果我删除了该键,状态栏就会变回黑色。
EDIT-MY 解决方案: 视图控制器类在我的情况下不起作用,因为我将主视图控制器嵌入到导航控制器中,我的解决方法是覆盖相同的方法,但针对导航控制器而不是相关视图控制器。
extension UINavigationController {
public override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .LightContent
}
}
【问题讨论】:
-
您正在使用哪个版本的 Xcode ?我的意思是 swift3 或更早的版本?
-
swift 2.2, xcode 7.3...还需要在xcode7.3中停留一段时间。
-
不要不为此使用 Info.plist。使用提供的视图控制器方法。
-
不再在电脑上(从手机回复)但是,如果我从 .plist 中删除密钥,那么状态栏将保持黑色,我需要它为白色。
-
我发现了我的问题,视图控制器类不起作用,因为我将 VC 嵌入到 NavigationController 中。