大家好,我正在尝试在视图控制器中隐藏我的状态栏,但似乎没有起作用。我使用了以下函数:
override var prefersStatusBarHidden: Bool {
return true
}
我还在plist
文件中将View controller-based status bar appearance
设置为YES
我的状态栏不想隐藏...我错在哪里了吗?
大家好,我正在尝试在视图控制器中隐藏我的状态栏,但似乎没有起作用。我使用了以下函数:
override var prefersStatusBarHidden: Bool {
return true
}
我还在plist
文件中将View controller-based status bar appearance
设置为YES
我的状态栏不想隐藏...我错在哪里了吗?
看起来你想在单个ViewController
中特别隐藏状态栏。
为了做到这一点,您需要在该ViewController
中添加以下内容:
self.modalPresentationCapturesStatusBarAppearance = true
override var prefersStatusBarHidden: Bool {
return true
}
我还在我的 .plist
中添加了 View controller-based status bar appearance
,并将其设置为YES
。
已在最新的iOS 13上测试。
self.modalPresentationCapturesStatusBarAppearance = true
,它也能正常工作。 - Daemonson Dong如果目标视图控制器嵌入到其他容器视图控制器中,例如UINavigationController
,则需要子类化该容器视图控制器并覆盖其 childForStatusBarHidden
方法,以返回目标视图控制器。
你可以看一下这个,你需要重写 childForStatusBarHidden 和 childForStatusBarStyle。
class CCNavigationController: UINavigationController {
override var childForStatusBarHidden: UIViewController? {
return self.topViewController
}
override var childForStatusBarStyle: UIViewController? {
return self.topViewController
}
}
Info.plist
中将View controller-based status bar appearance
设置为NO
。您可以在此处检查状态栏的设置。 - Vadim Nikolaev(UIApplication.shared.value(forKey: "statusBarWindow") as? UIWindow)?.isHidden = false
- Keshu R.plist
中将状态栏初始化隐藏设为YES
,将视图控制器的状态栏外观设置为NO
,没有添加任何代码 - 在iOS13.3和iPhone11上,状态栏都是隐藏的。 - Vadim Nikolaev