在我的应用中,我没有显示状态栏。 在IOS 7中,我不得不在信息plist中添加“View controller-based status bar appearance”,这很好,但是当我使用以下代码时:
imagePicker.allowsEditing = YES;
imagePicker.sourceType = (sender == self.chooseImageBtn && [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) ? UIImagePickerControllerSourceTypeCamera :
UIImagePickerControllerSourceTypeSavedPhotosAlbum;
[self presentViewController:imagePicker animated:YES completion:nil];
即使添加以下代码,状态栏也会再次显示:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
答案 0 :(得分:1)
当您打开图像拾取器时会出现此问题,因为状态栏会显示在那里。
我遇到了同样的问题。
这是我的解决方案。把它放在视图控制器的viewWillAppear中,从中打开图像选择器视图
-(void) viewWillAppear:(BOOL)animated{
[super viewWillAppear:YES];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
答案 1 :(得分:0)
我也和他斗争了很长时间。这就是我最终摆脱它的原因。
- (void) navigationController:(UINavigationController *) navigationController willShowViewController:(UIViewController *) viewController animated:(BOOL)animated
{
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
[self setNeedsStatusBarAppearanceUpdate];
viewController.contentSizeForViewInPopover = navigationController.topViewController.view.frame.size;
}
}
另外,在Info.plist中,添加:
View controller-based status bar appearance: NO
希望有所帮助。