Ios 尽管将UIViewControllerBasedStatusBarAppearance设置为NO,但状态栏在iPad mini上仍然可见

Ios 尽管将UIViewControllerBasedStatusBarAppearance设置为NO,但状态栏在iPad mini上仍然可见,ios,ios7,statusbar,Ios,Ios7,Statusbar,我有一个iPhone应用程序,UIViewControllerBasedStatusBarAppearance设置为NO。在我测试过的任何设备(iPhone 4、5、5s、5c、iPad 4ish)上,状态栏都不可见。iPad mini(第1代)除外。 使用iOSSDK是7.1 状态栏在iPadMini1st gen上是可见的。我希望状态栏在这个设置中也是隐藏的 我甚至尝试添加[[UIApplication sharedApplication]setStatusBarHidden:NO]到使用选

我有一个iPhone应用程序,UIViewControllerBasedStatusBarAppearance设置为NO。在我测试过的任何设备(iPhone 4、5、5s、5c、iPad 4ish)上,状态栏都不可见。iPad mini(第1代)除外。 使用iOSSDK是7.1

状态栏在iPadMini1st gen上是可见的。我希望状态栏在这个设置中也是隐藏的

我甚至尝试添加
[[UIApplication sharedApplication]setStatusBarHidden:NO]
使用选项完成了启动,但没有改变任何内容

状态栏样式也设置为“在应用程序启动期间隐藏”

iPad mini运行iOS 7.1

是的,这是一个边缘的情况,但我只是不能让它拿出预期的结果,这一次

还有一点信息:我正在使用cocos2diphonev2.1。我以前从未遇到过这个问题,因为我发布了一系列具有相同引擎的应用程序我开始认为这是一个与iOS 7.1和iPad mini的组合有关的bug。

以下是设置:


您应该将“基于视图控制器的状态栏外观”设置为“是”,并在每个要隐藏的视图中调用此方法。最好为所有视图创建一个基本视图控制器,并调用一次

- (BOOL)prefersStatusBarHidden {
    return YES;
}
UIStatusBarHidden
UIViewControllerBasedStatusBarAppearance

尝试将此设置到您的info.plist文件中。

我也遇到了同样的问题,我想给出一些解释

只有在iPad上启动iPhone(仅限)应用程序时,问题才会出现。如果应用程序是通用的,就不会有任何问题。 最恼人的行为是在iPad上使用仅限iPhone的应用程序,而不使用视网膜显示器。因为状态栏覆盖了应用程序的顶部


我的plist文件:


仅适用于iPhone的应用程序

iPhone

iPad:

iPad视网膜:


通用应用程序

iPhone:

iPad:

iPad视网膜:


这是iPad Mini iOS 7.1版中的一个bug

以典型的方式,他们修复了一个问题(一个空白状态栏),并创建了另一个问题


请务必向Apple报告错误。

我有一个解决方法。添加以下内容:

- (UIStatusBarStyle) preferredStatusBarStyle {
    return -1;
}
<Error>: CGContextRestoreGState: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context  and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.
无论您在哪里:

- (BOOL)prefersStatusBarHidden {
    return YES;
}
这显然很糟糕,但似乎对我有效——至少到目前为止

我注意到这会导致如下输出:

- (UIStatusBarStyle) preferredStatusBarStyle {
    return -1;
}
<Error>: CGContextRestoreGState: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context  and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.
:CGContextRestoreGState:无效的上下文0x0。这是一个严重的错误。此应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体降级。此通知是出于礼貌:请解决此问题。这将成为即将进行的更新中的致命错误。

我找到了另一个解决方法,可能是这个错误导致了这个解决方法的有效性,所以我坚持使用它,但值得注意的是。

你在.plist中试过这个吗?那是plist是的。在.plist中尝试这个关键字“基于视图控制器的状态栏外观”,并将bool设置为否。而不是“UIViewControllerBasedStatusBarAppearance”sathiahoorthy:这是同一回事。是的,同样。让我们试试。这听起来很奇怪。自从这个设置出现以来,我一直在将它设置为否。即使我现在将它设置为是,我如何“调用”prefersStatusBarHidden?prefersStatusBarHidden听起来像是iOS会调用的东西。“查看基于控制器的状态栏外观”键告诉系统“我会注意状态栏的可见性”。之后,您可以覆盖prefersStatusBarHidden方法。好的,我将试一试。长话短说,这个答案的理论是“正确的”,UIViewControllerBasedStatusBarAppearance设置为“是”询问“prefersStatusBarHidden”中有关状态栏外观的视图。如果我不在那里返回YES,这将对我产生相反的效果。因此,我将其设置为“是”以隐藏状态栏。它适用于我测试的设备(iPhone5,一开始就没有问题),但不适用于iPadMini。我开始认为这是iPad mini中的一个bug……是的,这是做同样事情的另一种方式,所以它可能是一个bug,你最好报告它。谢谢你的详细介绍。我应该报告这个错误,当我有一段时间了…你能找到一种方法来修复这个吗?遇到了您所描述的内容。但是使用这个我看不到UIStatusBarStyleLightContent。有人能帮忙吗?