首页 文章

无法隐藏状态栏-Swift 3,[重复]

提问于
浏览
46

这个问题在这里已有答案:

我经常隐藏状态栏

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的常规设置中选中了“隐藏状态栏”:

enter image description here

但状态栏仍然显示 .


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

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

但这也不会隐藏状态栏 .


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

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

1 回答

  • 108

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

    override var prefersStatusBarHidden: Bool {  
        return true  
    }
    

    另一个例子也可以得到herehere

    有关此更改的更多信息以及为何需要,请参阅Matt's great answer on this .

相关问题