这个问题在这里已有答案:
我经常隐藏状态栏
override func prefersStatusBarHidden() -> Bool {
return true
}
但Xcode给了我一个错误,说“方法不会覆盖其超类中的任何内容” .
如果我删除 override
,Xcode会给出不同的错误:"Method 'prefersStatusBarHidden()' with Objective-C selector 'prefersStatusBarHidden' conflicts with getter for 'prefersStatusBarHidden' from superclass 'UIViewController' with the same Objective-C selector"
我还在Target的常规设置中选中了“隐藏状态栏”:
但状态栏仍然显示 .
我在另一个Stack Overflow答案中找到了这个方法
UIApplication.shared.setStatusBarHidden(true, with: .none)
但这也不会隐藏状态栏 .
在Xcode 8 Beta 1中,我使用了第一种和第二种方法,它们可以隐藏状态栏(第一种方法没有返回错误) . 现在我可以用Xcode 8 Beta 4隐藏状态栏吗?
注意:状态栏显示在模拟器设备和物理设备上,均运行iOS 10 .
1 回答
我们需要在Swift 3上覆盖属性本身(这是Xcode 8 Beta 4中的新功能):
另一个例子也可以得到here和here
有关此更改的更多信息以及为何需要,请参阅Matt's great answer on this .