我的iPhone应用程序要求始终隐藏状态栏。这通常很容易做到,如果我只在iPhone上运行应用程序,它就有效。但是,如果我在iPad上运行该应用程序,状态栏仍会显示在内容的顶部。那么,无论我的iPhone专用应用程序运行在哪个设备上,如何确保隐藏状态栏?我目前正在我的代码中执行以下操作:
为每个视图控制器调用此方法(我实际上在UIViewController上创建了一个类别,可以自动为任何VC实现此类,但它与在每个vc文件中编写它基本相同):
-(BOOL)prefersStatusBarHidden{
return YES;
}
我还在Info.plist中将“状态栏最初隐藏”设置为YES并将“查看基于控制器的状态栏外观”设置为NO。我也试过检测正在使用哪个设备并调用
[UIApplication sharedApplication]setSetStatusBarHidden:YES]
在AppDelegate中,但也没有运气。所以,我相信我已经尝试过所有想要尝试的东西。
答案 0 :(得分:10)
这似乎是在 iOS 7.1 中引入的,并影响运行带有视网膜图形的iPhone应用程序的非视网膜iPad。
问题设备: iPad 2 iPad Mini(非视网膜)。
iOS 7.0中不存在问题,并且可以在发布其他解决方案的情况下修复状态栏问题。
答案 1 :(得分:0)
添加此代码。
- (BOOL)prefersStatusBarHidden{
return YES;}
答案 2 :(得分:-1)
在YourViewController
中添加一个属性
@property BOOL statusBarHidden;
然后在ViewDidLoad
添加以下代码行
[self prefersStatusBarHidden];
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
self.statusBarHidden = YES;
然后在YourViewController
- (BOOL)prefersStatusBarHidden{
return YES;}
并且也不要忘记在代码中添加#import <UIKit/UIKit.h>
,它对IOS6.1&amp; 7.0:)