在我的iOS视频应用中,状态栏隐藏在一些视图控制器中。我已经使用以下代码做到了这一点。

[[UIApplication sharedApplication] setStatusBarHidden:YES];

它适用于iOS 5和iOS 6,但不适用于iOS 7。 我在特定的视图控制器中尝试了这个,

Eg:

-(BOOL)prefersStatusBarHidden { return YES; }

它工作得很好,但是我不能在父视图控制器中再次显示状态栏。


当前回答

为了更好地理解,添加一些带有评论的照片:

App在任何更改前

在名为“支持文件”的Project Navigator文件夹中找到,然后单击*。plist文件

之后你会得到不同的设置你的应用程序显示。你需要添加2个键UIStatusBarHidden和UIViewControllerBasedStatusBarAppearance。你可以简单地点击+按钮

按下+键后,你可以选择其中一个键开始打字。

正确的版本:

最后,在应用这些变化之后:

另外,你可以在这里找到另一种解决方案

其他回答

以下是Swift版本(iOS9之前):

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    UIApplication.sharedApplication().setStatusBarHidden(true, withAnimation: UIStatusBarAnimation.None)
}

override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(animated)
    UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: UIStatusBarAnimation.None)
}

这也适用于(iOS7+):

override func prefersStatusBarHidden() -> Bool {
    return true
}

你还需要调用:

setNeedsStatusBarAppearanceUpdate()

在viewDidLoad()中。

注意,如果你使用SplitView控制器,或者其他容器视图控制器,你还需要让它在发送childViewControllerForStatusBarHidden时返回你的类。一种方法是为statusController设置一个公共弱变量,并在这个被重写的方法中返回它。

为了更好地理解,添加一些带有评论的照片:

App在任何更改前

在名为“支持文件”的Project Navigator文件夹中找到,然后单击*。plist文件

之后你会得到不同的设置你的应用程序显示。你需要添加2个键UIStatusBarHidden和UIViewControllerBasedStatusBarAppearance。你可以简单地点击+按钮

按下+键后,你可以选择其中一个键开始打字。

正确的版本:

最后,在应用这些变化之后:

另外,你可以在这里找到另一种解决方案

在viewdidload中添加以下行

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

并添加新方法

  - (BOOL)prefersStatusBarHidden {
          return YES;
  }

同时更改信息。plist文件 查看基于控制器的状态栏外观" = NO

这对我很有用

在iOS7中隐藏状态栏:

打开你的plist-file,然后添加一个添加一行名为“基于视图控制器的状态栏外观”,并将其值设置为NO。

iOS中隐藏状态栏的步骤 1. AppDelegate开放。M文件,添加应用程序。statusbar隐藏在didFinishLaunchingWithOptions方法中

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    application.statusBarHidden = YES;
    return YES;
    }

开放的信息。Plist和set

查看基于控制器的状态栏外观设置NO