我想隐藏整个应用中的状态栏。
我也知道,我们可以这样做:
set the key value "View controller-based status bar appearance" NO in plist.
但是我只需要为iOS 7做同样的事情,所以当然需要OS版本的一些条件,据我所知,我们不能在.plist文件中应用任何条件。
所以任何人都可以建议一些只隐藏iOS 7状态栏的代码。
感谢您的回复。
答案 0 :(得分:6)
//Checking iOS version
float versionOS;
versionOS=[[[UIDevice currentDevice] systemVersion] floatValue];
if(versionOS>=7.0)
{
[UIApplication sharedApplication].statusBarHidden = YES
}
将此代码添加到application didFinishLaunchingWithOptions
方法。
答案 1 :(得分:5)
将以下代码添加到视图控制器:
- (BOOL)prefersStatusBarHidden {
return YES;
}
这不会打扰任何低于7的ios,因为它只在ios7中调用。
答案 2 :(得分:2)
我发现在整个应用程序中隐藏状态栏的最简单方法是在UIViewController上创建一个类别并覆盖prefersStatusBarHidden。这样您就不必在每个视图控制器中编写此方法。
#import <UIKit/UIKit.h>
@interface UIViewController (HideStatusBar)
@end
#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