61

我可以在我的应用程序中隐藏状态栏:

- (void)viewDidLoad{
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
    [super viewDidLoad];
    }

当我选择我的启动图像并第一次启动它时,它是图片上方的状态栏。我该如何隐藏这个?

4

15 回答 15

131

您需要将此代码添加到您的 AppDelegate 文件中,而不是您的根视图控制器中

或者添加属性状态栏最初隐藏在您的 plist 文件中

在此处输入图像描述

伙计们,在iOS 7+

请将此添加到您的 info.plist 文件中,它会有所作为:)

UIStatusBarHidden UIViewControllerBasedStatusBarAppearance

在此处输入图像描述

适用于 iOS 11.4+ 和 Xcode 9.4+

在一个或所有视图控制器中使用此代码

覆盖 var prefersStatusBarHidden: Bool { return true }

于 2012-09-30T12:02:36.623 回答
78

将以下代码添加到您的视图控制器:

if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
    // iOS 7
    [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
} else {
    // iOS 6
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}

- (BOOL)prefersStatusBarHidden {
    return YES;
}
于 2013-08-14T10:40:51.210 回答
64

对我有帮助的是(更改 plist 文件):

  1. 设置状态栏最初是隐藏的 = YES
  2. 添加行:查看基于控制器的状态栏外观 = NO

隐藏状态栏 - plist 设置

于 2013-12-17T10:02:34.793 回答
42

将此代码放入隐藏状态栏的视图控制器中:

- (BOOL)prefersStatusBarHidden {return YES;}
于 2013-09-23T07:18:11.543 回答
12

在 iOS 7 状态栏外观取决于UIViewController默认情况。要全局隐藏状态栏,info.plist使用key 的 value 并使用NOvalue的方法。UIViewControllerBasedStatusBarAppearanceUIApplicationsetStatusBarHiddenYES BOOL

于 2013-08-23T22:51:42.217 回答
11

从“info.plist”的下拉列表中添加此键,瞧,您将不会再看到包含诸如 GSM、wifi 图标等元素的顶部栏。
在此处输入图像描述

于 2013-09-23T21:24:55.393 回答
2

它对我有用,

将以下代码添加到 info.plist 文件中,

 <key>UIStatusBarHidden</key>
 <false/>
 <key>UIViewControllerBasedStatusBarAppearance</key>
 <false/>

希望这对某人有用。

于 2017-05-12T09:30:21.483 回答
1

我支持 iOS 5、6 和 7。我的应用仅适用于 iPad。我需要使用以下所有内容:

[[UIApplication sharedApplication] setStatusBarHidden:YES];

视图控制器:

- (BOOL)prefersStatusBarHidden{ return YES; }

信息列表

    <key>UIStatusBarHidden</key>
    <string>YES</string>

    <key>UIStatusBarHidden~ipad</key>
    <true/>

    <key>UIViewControllerBasedStatusBarAppearance</key>
    <string>NO</string>
于 2014-07-21T13:38:01.073 回答
1

info.plist

View controller-based status bar appearance NO
Status bar is initially hidden YES

view controller.m

- (BOOL) prefersStatusBarHidden
{
    return YES;
}
于 2014-06-24T11:06:06.583 回答
0

I had the same problem, but its an easy fix! Just set

status bar is initially hidden = YES

then add an row by clicking on the plus right after the text status bar is initially hidden, then set the text to

view controller-based status bar appearance

by clicking the arrows, and set it to NO

Hope this helps!

于 2014-04-20T20:29:30.173 回答
0

只需选中 Targets/Summary iPad Deployment Info 上的框,您的状态栏就会消失。它适用于我的应用程序。

于 2013-07-08T11:12:29.747 回答
0

好吧,我最简单的方法是在 .m 文件中输入以下内容。

- (BOOL) prefersStatusBarHidden
{
    return YES;
}

这应该工作!

于 2014-05-15T11:17:27.237 回答
0
-(void) viewWillAppear:(BOOL)animated
{
     [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}
于 2014-05-21T12:41:24.133 回答
0

要以编程方式隐藏每个单独视图控制器的状态栏,请使用以下两个过程中的任何一个:

程序1:

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

程序2:

-(BOOL)prefersStatusBarHidden {
    return YES;
}

要隐藏整个应用程序的状态栏,我们应该遵循以下过程:

您应该将此值添加到 plist:“查看基于控制器的状态栏外观”并将其设置为“否”。

点击这里查看截图

于 2016-08-04T04:12:44.280 回答
0

一个完整的解决方案,在您的视图控制器中

// you can use your own logic to determine if you need to hide status bar
// I just put a var here for now
var hideStatusBar = false
override func preferStatusBarHidden() -> Bool {
    return hideStatus
}


// in other method to manually toggle status bar
func updateUI() {
    hideStatusBar = true
    // call this method to update status bar
    prefersStatusBarHidden()
}
于 2016-05-26T04:08:24.063 回答