无法隐藏状态栏-Swift 3,

时间:2016-08-10 14:28:09

标签: ios swift xcode swift3

我通常用

隐藏状态栏
override func prefersStatusBarHidden() -> Bool {
    return true
}

但是Xcode给了我一个错误,说"方法不会覆盖超类中的任何内容"。

如果我删除了override,则Xcode会出现不同的错误:"方法'首选状态:禁止使用('使用Objective-C选择器' prefersStatusBarHidden'与吸气剂的冲突是为了优先选择StatusBarHidden'来自超类' UIViewController'使用相同的Objective-C选择器"

我还有"隐藏状态栏"检查我的目标常规设置:

enter image description here

但状态栏仍然显示。

我在另一个Stack Overflow回答中找到了这个方法

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

但这并不会隐藏状态栏。

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

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

1 个答案:

答案 0 :(得分:108)

我们需要在Swift 3上覆盖属性本身(这是Xcode 8 Beta 4中的新功能):

override var prefersStatusBarHidden: Bool {  
    return true  
}  

另一个例子也可以获得herehere

有关此更改的内容及其必要性的更多信息,请参阅Matt's great answer on this