我通常用
隐藏状态栏override func prefersStatusBarHidden() -> Bool {
return true
}
但是Xcode给了我一个错误,说"方法不会覆盖超类中的任何内容"。
如果我删除了override
,则Xcode会出现不同的错误:"方法'首选状态:禁止使用('使用Objective-C选择器' prefersStatusBarHidden'与吸气剂的冲突是为了优先选择StatusBarHidden'来自超类' UIViewController'使用相同的Objective-C选择器"
我还有"隐藏状态栏"检查我的目标常规设置:
但状态栏仍然显示。
我在另一个Stack Overflow回答中找到了这个方法
UIApplication.shared.setStatusBarHidden(true, with: .none)
但这并不会隐藏状态栏。
在Xcode 8 Beta 1中,我使用了第一种和第二种方法,它们可以隐藏状态栏(第一种方法没有返回错误)。现在我可以用Xcode 8 Beta 4隐藏状态栏吗?
注意:状态栏显示在模拟器设备和物理设备上,均运行iOS 10。
答案 0 :(得分:108)
我们需要在Swift 3上覆盖属性本身(这是Xcode 8 Beta 4中的新功能):
override var prefersStatusBarHidden: Bool {
return true
}
有关此更改的内容及其必要性的更多信息,请参阅Matt's great answer on this。