我刚刚升级到XCode 5和iOS 7.我已经阅读了所有可以找到的建议,但仍然会将状态栏显示在我的应用顶部。
我尝试在我的plist中将基于View控制器的状态栏外观设置为NO:
我尝试添加:
- (void)viewDidLoad
{
// …
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
// iOS 7
[self prefersStatusBarHidden];
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
} else {
// iOS 6
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}
// …
}
- (BOOL)prefersStatusBarHidden
{
return YES;
}
到我的根视图控制器。
我不知道还有什么可以尝试的。我错过了一些明显的东西吗?
更新
我发现状态栏只出现在几个目标上,而其他运行相同代码的目标则没有状态栏。我已经检查了所有的plist ...显示状态栏的唯一区别是它们在屏幕顶部显示一个广告栏...我想知道这是否与它有关?
答案 0 :(得分:4)
在所有视图控制器中使用- (BOOL)prefersStatusBarHidden
{
return YES;
}
。祝你好运!
答案 1 :(得分:1)
在应用程序.plist中添加以下密钥: UIViewControllerBasedStatusBarAppearance并将其设置为“NO”
答案 2 :(得分:0)
我最终删除了plist文件并从另一个正常工作的目标中复制了一个文件,然后更改了必要的值。列表是相同的,但这似乎解决了它。我已经尝试过清洁建筑,重置模拟器等,所以我猜这是plist / xcode中的一个错误。
答案 3 :(得分:0)
尝试在根视图控制器中添加下一个代码:
- (BOOL)prefersStatusBarHidden { return YES; }
答案 4 :(得分:0)
不太苛刻的解决方案是插入
[application setStatusBarHidden:YES]
在方法中的AppDelegate.m中
- (BOOL) application(UIApplication *)application didFinishLaunchingWithOptions:(NSDirectory *)launchOptions
[UIApplication sharedApplication]
提供了methodcall中给出的应用程序。
因为将方法更改为allways返回YES感觉不对