Swift 3 - 使用Over Full Screen时如何隐藏状态栏

时间:2017-03-29 08:59:57

标签: ios swift modal-dialog segue

我正在开发一个快速的应用程序,当我在模态上使用Over Full Screen演示时,我无法找到如何隐藏状态栏。

但是,我把这行代码放在我的模态视图控制器中:

override var prefersStatusBarHidden: Bool {
    return true
}

如果我创建一个不是模态的segue,或者我创建了一个模式而不是全屏显示的segue,它就可以了。

我在互联网上搜索了如何修复它,我发现有相同问题但没有解决方案的人。

另外,当我使用Over Full Screen选项时,我无法更改状态栏的颜色。我不明白为什么?我认为这是相关的。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

要在执行全屏模式时隐藏状态栏,您需要在viewDidLoad中设置它:

override func viewDidLoad() {
    super.viewDidLoad()    
    modalPresentationCapturesStatusBarAppearance = true
}

然后使用标准方法隐藏状态栏:

override var prefersStatusBarHidden: Bool {
    return true
}

答案 1 :(得分:0)

我们可以正确地覆盖单个视图控制器中的preferredStatusBarStyle

除此之外,插入名为“查看基于控制器的状态栏外观”的新密钥,并在info.plist中将值设置为NO。 enter image description here

通过禁用“查看基于控制器的状态栏外观”,可以使用以下代码设置状态栏样式。

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; //objective-c

因此它应该解决"当我使用Over Full Screen选项&#34时,我无法改变状态栏的颜色;