我刚刚把我的iPhone 5 iOS 7升级到四个测试版。现在,当我从Xcode 5在iPhone上运行我的应用程序时,状态栏没有隐藏,尽管它应该隐藏。

不工作:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

不工作:

[UIApplication sharedApplication].statusBarHidden = YES;

无法登录苹果开发者论坛


当前回答

隐藏状态栏的步骤:

1.转到您的应用程序信息。plist文件。

2.和设置,查看基于控制器的状态栏外观:布尔NO

希望我解决了状态栏问题.....

其他回答

对于这个问题,有很多建议的组合,但问题是iOS 6和7使用不同的方法来隐藏状态栏。我从来没有成功地在iOS 7上设置plist设置来启用ios6风格的行为,但如果你正在构建支持iOS6 +的应用程序,你需要一次使用3个方法来确保特定的视图控制器隐藏状态栏:

// for ios 7 
- (BOOL)prefersStatusBarHidden{
    return YES;
}

// for ios 6
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}
- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    // explicitly set the bar to show or it will remain hidden for other view controllers
    [[UIApplication sharedApplication] setStatusBarHidden:NO];
}

无论你的plist设置如何,这都应该有效。

要在单个视图中隐藏状态栏,您应该使用:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];

起初,这对我来说并不管用,然后在这个方法的文档中看到: 如果你的应用程序使用默认的基于uiviewcontroller的状态栏系统,设置statusBarHidden没有任何作用。

这必须在plist文件上完成,将基于视图控制器的状态栏外观设置为NO。 然后就成功了。

2019年……

要制作一个没有状态栏的应用程序,

单击信息。plist,右键单击“添加行”。

添加这两个,设置如下:

这就是它的全部。

我发现在整个应用程序中隐藏状态栏最简单的方法是在UIViewController上创建一个类别并覆盖prefersStatusBarHidden。这样你就不必在每个视图控制器中都写这个方法。

UIViewController+HideStatusBar.h

#import <UIKit/UIKit.h>

@interface UIViewController (HideStatusBar)

@end

UIViewController+HideStatusBar.m

#import "UIViewController+HideStatusBar.h"

@implementation UIViewController (HideStatusBar)

//Pragma Marks suppress compiler warning in LLVM. 
//Technically, you shouldn't override methods by using a category, 
//but I feel that in this case it won't hurt so long as you truly 
//want every view controller to hide the status bar. 
//Other opinions on this are definitely welcome

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"

- (BOOL)prefersStatusBarHidden
{
    return YES;
}

#pragma clang diagnostic pop


@end

我不知道为什么你“不能登录苹果开发者论坛”,但(在不违反NDA的情况下)你也可以通过Xcode隐藏你的状态栏。这是应用程序目标的一般设置。