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

[[UIApplication sharedApplication] setStatusBarHidden:YES];

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

Eg:

-(BOOL)prefersStatusBarHidden { return YES; }

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


当前回答

要在iOS7中隐藏状态栏,你需要2行代码

在应用程序中:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions写入 [[UIApplication sharedApplication] setStatusBarHidden:YES]; 在信息。加上这个 基于视图-控制器的状态栏外观= NO

其他回答

你应该将这个值添加到plist: "View controller-based status bar appearance"并将其设置为"NO"。

在iOS7中隐藏状态栏:

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

在Plist中添加以下属性。

Status bar is initially hidden = YES

View controller-based status bar appearance = NO

现在状态栏将被隐藏。

固定解决方案SWIFT 3+ (iOS 9, 10)

1-在信息。请在属性下面设置

2-粘贴下面的代码到根控制器,以

 private var isStatusBarHidden = true {
        didSet {
            setNeedsStatusBarAppearanceUpdate()
        }
    }

    override var prefersStatusBarHidden: Bool {
        return isStatusBarHidden
    }

你可以调用isStatusBarHidden = true和isStatusBarHidden = false来隐藏/显示状态栏

试试;

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