Answers:
尝试将以下方法添加到应用的根视图控制器中:
- (BOOL)prefersStatusBarHidden
{
return YES;
}
[self setNeedsStatusBarAppearanceUpdate];
在调用此方法后使用默认值以外的值(默认值为NO)来调用after。
您应该将此值添加到plist:“ 基于视图控制器的状态栏外观 ”并将其设置为“ NO ”。
这将使您可以将状态栏设置为隐藏模式。与其他提供的答案不同,这将其设置为全局。
更新:如果您希望状态栏隐藏在启动屏幕上,请不要忘记在目标状态栏选项上标记“ 在应用程序启动期间隐藏 ”。另外,如果您不想使用应用程序内部的代码,也可以在plist的“ 是 ”上添加“ 状态栏最初是隐藏的 ” 。
您发布的代码适用于iOS 6.1及更低版本。对于iOS 7,Apple提供了新方法来直接控制每个视图的状态栏。在Info.plist中关闭此选项将使您至少对于当前的Developer Preview(4)隐藏状态栏。
作为参考,请查看Apple开发人员门户网站上提供的iOS 7过渡指南。
好吧,我尝试在所有应用程序和“ app” -info.plist中隐藏状态栏,然后在字典“信息属性列表”中添加两行,然后添加“基于视图控制器的状态栏外观”设置为NO,然后在“状态栏最初是隐藏的”设置为YES,对我来说是n_n'
但是,如果使用UIImagePicker,状态栏将再次出现。
在这种情况下,您应该隐藏如下状态栏,
- (void)imagePickerController:(UIImagePickerController *)aPicker didFinishPickingMediaWithInfo:(NSDictionary *)info {
// for iOS7
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
setNeedsStatusBarAppearanceUpdate
吗?
经过长时间的搜索,我终于找到了一个非常简单的解决方案,该解决方案还解决了 UIImagePickerController
问题。
如其他答案中所述,将状态栏设置为隐藏在AppDelegate didFinishLaunching中,并将“基于视图控制器的状态栏外观”设置为NO。
然后,在您的AppDelegate中:
- (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame
{
[application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}
等-即使UIImagePickerController最重要,您的状态栏也将保持隐藏。
这比每次显示UIImagePickerController时都“隐藏”它更好,因为它在整个应用程序中始终保持隐藏状态。
我为我找到了这个解决方案。它像一种魅力。将此代码写在要使用UIImagePickerController的viewcontroller上。
- (void)viewWillDisappear:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}
- (void)viewWillAppear:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}
我也有UIImagePicker的问题。与“单独回答”相似,我的解决方案如下。我添加了以下行或代码:
[[UIApplication sharedApplication] setStatusBarHidden:YES];
此功能:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
我尚未在iOS 6或更早版本上进行过测试,但在iOS 7中效果很好。
快速解决方案
只需将其添加到您的视图控制器:
override func prefersStatusBarHidden() -> Bool {
return true
}