在我的iOS视频应用中,状态栏隐藏在一些视图控制器中。我已经使用以下代码做到了这一点。
[[UIApplication sharedApplication] setStatusBarHidden:YES];
它适用于iOS 5和iOS 6,但不适用于iOS 7。 我在特定的视图控制器中尝试了这个,
Eg:
-(BOOL)prefersStatusBarHidden { return YES; }
它工作得很好,但是我不能在父视图控制器中再次显示状态栏。
在我的iOS视频应用中,状态栏隐藏在一些视图控制器中。我已经使用以下代码做到了这一点。
[[UIApplication sharedApplication] setStatusBarHidden:YES];
它适用于iOS 5和iOS 6,但不适用于iOS 7。 我在特定的视图控制器中尝试了这个,
Eg:
-(BOOL)prefersStatusBarHidden { return YES; }
它工作得很好,但是我不能在父视图控制器中再次显示状态栏。
当前回答
固定解决方案SWIFT 3+ (iOS 9, 10)
1-在信息。请在属性下面设置
2-粘贴下面的代码到根控制器,以
private var isStatusBarHidden = true {
didSet {
setNeedsStatusBarAppearanceUpdate()
}
}
override var prefersStatusBarHidden: Bool {
return isStatusBarHidden
}
你可以调用isStatusBarHidden = true和isStatusBarHidden = false来隐藏/显示状态栏
其他回答
在iOS7中隐藏状态栏:
打开你的plist-file,然后添加一个添加一行名为“基于视图控制器的状态栏外观”,并将其值设置为NO。
你应该将这个值添加到plist: "View controller-based status bar appearance"并将其设置为"NO"。
我做了以下操作,它似乎是有效的(即使在iOS 8中):
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
}
- (BOOL)prefersStatusBarHidden {
return YES;
}
在Plist中添加以下属性。
Status bar is initially hidden = YES
View controller-based status bar appearance = NO
现在状态栏将被隐藏。
Swift 3更新:
更新信息。请输入以下信息:
基于视图控制器的状态栏外观:NO
然后,在ViewController或其他地方:
isstatusbarhidden = true