尽管正确的PList设置,状态栏仍然出现在iOS 7中

时间:2013-09-25 10:53:53

标签: iphone ios objective-c xcode statusbar

我刚刚升级到XCode 5和iOS 7.我已经阅读了所有可以找到的建议,但仍然会将状态栏显示在我的应用顶部。

我尝试在我的plist中将基于View控制器的状态栏外观设置为NO:

enter image description here

我尝试添加:

- (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 ...显示状态栏的唯一区别是它们在屏幕顶部显示一个广告栏...我想知道这是否与它有关?

5 个答案:

答案 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

像Dipen Panchasara一样 他的:[UIApplication sharedApplication]提供了methodcall中给出的应用程序。

因为将方法更改为allways返回YES感觉不对