iOS 7应用程序放大后状态栏无法消失

5
我尝试了这里建议的一切:状态栏不会消失,但是没有用。
我的iPhone应用程序版本没有显示状态栏,但是在我的iPad上(运行缩放版本的iPhone版本),有一个状态栏无法消失!
如果有区别的话,我的应用程序大部分使用设备相机。如果您需要更多信息/代码,请不要犹豫,问我!我的应用程序仅适用于iOS 7,并且我使用Xcode 5。此外,我希望整个应用程序都不显示状态栏。
请勿在plist中建议使用UIViewControllerBasedStatusBar--它不起作用。
相关文章:

https://dev59.com/YWMl5IYBdhLWcg3w3aI-#18740897

https://dev59.com/YWMl5IYBdhLWcg3w3aI-#21034908

https://dev59.com/YWMl5IYBdhLWcg3w3aI-#20307841


1
你知道的,这个QA实际上拥有许多其他人没有的信息。(此外,Vike引起了一场激烈的争论:))实际上关闭它可能是一个不好的主意。 - Fattie
1
如果你认为你添加了新的有价值的内容,请将其发布在另一个问题上,因为当前问题很可能会被关闭。 - vikingosegundo
Joe Blow所谓的“argument”只是暗示他使用的技术不受苹果支持并且被反对。它可能有效,也可能失败。Joe Blow回答说,在某些情况下,这是唯一合理的方式,例如他通常在每个项目中处理数百个自定义视图控制器类。我认为,如果你陷入这种情况,你的架构就有问题了,因为我通常不会使用超过半打甚至十几个,更不会使用数百个。 - vikingosegundo
重申一遍:如果你已经到了必须使用分类与子类化的地步,那么你已经走错路了一段时间。至少对于这个问题来说,这种方法根本不需要。 - vikingosegundo
仅供搜索此处的任何人使用,现在是2017年,(幸运的是)关于类别等的上述讨论现在已经完全从iOS中消失了。您只需在plist中添加两个项目即可,就这么简单。 - Fattie
2个回答

3

从2016年开始,您只需执行以下操作:

将这两个项目添加到您的plist中:

<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>

1. 这很简单

2. 没有其他方法。

(注意 - "通用设置"-"部署信息"部分有一个(无意义的)“隐藏状态栏”复选框。这只是读取了plist文件,是完全没有意义的复选框。)


历史回答...

我已经删除了历史回答,因为它们是完全没有用的。(如果有历史学家需要阅读,请点击“编辑历史”。)


2
为什么在类别中进行潜在有害且不受支持的覆盖,如果在视图控制器子类中可以毫无问题地完成呢? - vikingosegundo
1
你应该教授绝对初学者“肮脏的技巧”,并将它们推广为最佳解决方案。 - vikingosegundo
1
JoeBlow和@Branch,请在你们的对话变得如此冗长时转到聊天中。 - Mick MacCallum
1
@JoeBlow 有什么问题可能出现?现在没有错误了,但状态栏仍然显示。 - Branch
@JoeBlow 看了其他帖子,这可能是 iPad mini 和 iOS 7.1 的一个 bug。(我一直在 iPad mini 上测试,不幸的是,没有一个全尺寸的 iPad)。因此,我将您的答案标记为解决方案。 - Branch
显示剩余4条评论

0
你的 info.plist 文件中是否已经添加了两个新属性?请尝试将“状态栏最初隐藏”设置为“YES”,并将“UIViewControllerBasedStatusBarAppearance”设置为“NO”。这将为你的应用程序隐藏状态栏。

正如我在问题中所说,我已经尝试了这里的所有方法:https://dev59.com/kGMm5IYBdhLWcg3wO9Hy(包括您的建议),但都没有成功。不过还是谢谢! - Branch
1
是的,在某些情况下,“这根本不起作用”。我认为在这里解释原因并没有意义,但这就是生活。我甚至可以说,在iOS7中,您永远不应该使用UIViewControllerBasedStatusBarAppearance。它只是一个遗留问题,试图在每个人“适应”iOS7 / Xcode5时使事情正常工作。 - Fattie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接