1

我刚刚升级到 XCode 5 和 iOS 7。我已经阅读了我能找到的所有建议,但状态栏仍然出现在我的应用程序顶部。

我尝试在我的 plist 中将基于视图控制器的状态栏外观设置为 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... 与显示状态栏的唯一区别是它们在屏幕顶部显示一个广告栏... 我想知道这是否与它有关?

4

5 回答 5

4

- (BOOL)prefersStatusBarHidden { return YES; }在所有视图控制器中使用。祝你好运!

于 2013-09-25T11:16:12.127 回答
1

在应用程序 .plist 添加此键: UIViewControllerBasedStatusBarAppearance 并将其设置为“否”

于 2014-01-07T11:58:18.143 回答
0

我最终删除了 plist 文件并从另一个有效的目标复制了一个,然后更改了必要的值。列表是相同的,但这似乎解决了它。我已经尝试过干净的构建,重置模拟器等,所以我猜这是 plist/xcode 中的错误。

于 2013-11-05T13:57:29.387 回答
0

尝试在根视图控制器中添加下一个代码:

- (BOOL)prefersStatusBarHidden { return YES; }
于 2013-11-22T19:31:00.997 回答
0

不那么 hacky 的解决方案是插入

[application setStatusBarHidden:YES]

在 AppDelegate.m 方法中

- (BOOL) application(UIApplication *)application didFinishLaunchingWithOptions:(NSDirectory *)launchOptions

就像 Dipen Panchasara 他的:[UIApplication sharedApplication]提供方法调用中给出的应用程序。

因为把方法改成总是返回YES感觉不对

于 2015-02-04T11:43:00.733 回答