隐藏iphone / ipad应用程序中的状态栏

时间:2014-03-21 09:15:26

标签: ios objective-c

我正在为iPhone iPad申请。

我的测试iPhone(v4)在iOS 6上。 我的测试iPad在iOS 7上。

我想从整个应用程序中删除这两个状态栏。

以下是我尝试的内容:

在info.plist中,我已将Status bar is initially hidden设为YESView controller based status bar设为NO

这没有用。

所以我已将View controller based status bar设置为YES,并在我的主视图控制器中添加了:

- (BOOL)prefersStatusBarHidden{
    return YES;
}

虽然这个函数永远不会被调用。

在同一个控制器中,我已将其添加到loadview

    [[UIApplication sharedApplication] setStatusBarHidden:YES];

这适用于iPhone,但酒吧仍然显示在iPad上。

感谢您的帮助。

编辑:

我还检查了#34;在应用程序启动期间隐藏"在项目设置中。

编辑:

以下是我的项目设置的两个屏幕截图。

http://imgur.com/a/VXZTk

正如您所看到的,我已经尝试过您将此投票视为重复问题的答案。

如果我没有做错,感谢投票重新打开这个问题。

4 个答案:

答案 0 :(得分:2)

在所有iOS版本的整个应用中,您需要有两件事情才能隐藏状态栏

  1. 在info.plist View controller based status bar设置为NO。 (适用于iOS 7)
  2. applicationDidFinishLaunching添加[[UIApplication sharedApplication] setStatusBarHidden:YES];或简称[app setStatusBarHidden:YES]
  3. 现在,您可以选择将Status bar is initially hidden设置为YES,以便在应用启动时隐藏状态栏。

    此外,如果您不希望在整个应用程序中隐藏状态栏。  删除[[UIApplication sharedApplication] setStatusBarHidden:YES]

    并覆盖ViewControllers中的prefersStatusBarHidden并返回YES或NO

    - (BOOL)prefersStatusBarHidden{
        return YES;
    }
    

答案 1 :(得分:1)

如果设置Status bar is initially hidden to YES,它将正常工作。

无论如何你试过以下方法吗?

-(void)viewDidLoad
{
    [super viewDidLoad];

    if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)])
    {
        [self prefersStatusBarHidden];

        [self setNeedsStatusBarAppearanceUpdate];
    }
}

-(BOOL)prefersStatusBarHidden
{        
    return YES;
}

- (UIViewController *)childViewControllerForStatusBarHidden
{
    return nil;
}

谢谢!

答案 2 :(得分:1)

只需将部署信息设置为通用。

答案 3 :(得分:0)

单击xCode项目/您的目标/常规/部署信息,然后选中“在应用程序启动期间隐藏”