【发布时间】:2016-12-17 00:07:58
【问题描述】:
我通常用
隐藏状态栏override func prefersStatusBarHidden() -> Bool {
return true
}
但是 Xcode 给了我一个错误,说“方法没有覆盖它的超类中的任何东西”。
如果我删除override,Xcode 会给出不同的错误:“方法 'prefersStatusBarHidden()' 与 Objective-C 选择器 'prefersStatusBarHidden' 与来自超类 'UIViewController' 的 'prefersStatusBarHidden' 的 getter 与相同的 Objective-C 冲突选择器”
我还在 Target 的常规设置中选中了“隐藏状态栏”:
但状态栏仍然显示。
我在另一个 Stack Overflow 答案中找到了这个方法
UIApplication.shared.setStatusBarHidden(true, with: .none)
但这也不会隐藏状态栏。
在 Xcode 8 Beta 1 中,我使用了第一种和第二种方法,它们可以隐藏状态栏(第一种方法没有返回错误)。我现在可以用 Xcode 8 Beta 4 做什么来隐藏状态栏?
注意:状态栏显示在模拟器设备和物理设备上,均运行 iOS 10。
【问题讨论】:
-
@SaintThread 谢谢,但请参阅我关于为什么使用
func prefersStatusBarHidden不起作用的问题的第一部分。还有其他想法吗? -
@matt 我不认为这是重复的,因为该答案明确涉及界面方向,这与我在这里谈论的不同。它也没有涵盖这里提到的
get { return true },也没有涵盖对我来说失败的其他类型的方法。只是不够完整,无法回答我的问题。 -
@JohnRamos 你有没有阅读我的回答?碰巧 question 是关于界面方向的,但我的 answer 完全涵盖了您的情况,解释了 Swift 3 Xcode 8 seed 4 中发生了什么变化(即某些视图控制器方法是现在您作为属性覆盖的属性)。我的回答非常完整并且明确包含
prefersStatusBarHidden。 -
@KrisRoofe 好吧,我的错。很酷的东西。