不能隐藏状态栏 – 斯威夫特3,

我通常隐藏状态栏

override func prefersStatusBarHidden() -> Bool { return true } 

但Xcode给了我一个错误,说“方法不会覆盖任何超类”。

如果我删除override ,Xcode提供了一个不同的错误:“Objective-Cselect器”prefersStatusBarHidden“的方法'prefersStarusBarHidden()'与具有相同Objective-Cselect器的超类'UIViewController'的'prefersStatusBarHidden'


我的目标的一般设置中也有“隐藏状态栏”:

在这里输入图像说明

但状态栏仍然显示。


我发现这个方法在另一个堆栈溢出的答案

 UIApplication.shared.setStatusBarHidden(true, with: .none) 

但是这并不隐藏状态栏。


在Xcode 8 Beta 1中,我使用了第一种和第二种方法,它们用来隐藏状态栏(第一种方法没有返回错误)。 现在我可以做什么来隐藏状态栏,与Xcode 8 Beta 4?

注意:状态栏显示在所有运行iOS 10的模拟器设备和物理设备上。

我们需要在Swift 3上重写属性本身(这是Xcode 8 Beta 4中的新function):

 override var prefersStatusBarHidden: Bool { return true } 

另一个例子,你也可以在这里和这里

更多关于这个变化是什么以及为什么这是必要的,看到马特在这方面的伟大答案 。