我刚刚把我的iPhone 5 iOS 7升级到四个测试版。现在,当我从Xcode 5在iPhone上运行我的应用程序时,状态栏没有隐藏,尽管它应该隐藏。
不工作:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
不工作:
[UIApplication sharedApplication].statusBarHidden = YES;
无法登录苹果开发者论坛
我发现在整个应用程序中隐藏状态栏最简单的方法是在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