2

在我的应用程序中,我不显示状态栏。在 IOS 7 中,我必须在 info plist 中添加“基于控制器的状态栏外观”,这很好,但是当我使用以下代码时:

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];
4

2 回答 2

1

当您打开图像选择器时会出现此问题,因为状态栏在那里强制显示。

我遇到了同样的问题。

这是我的解决方案。把它放在你打开图像选择器视图的视图控制器的 viewWillAppear 中

-(void) viewWillAppear:(BOOL)animated{
    [super viewWillAppear:YES];

    [[UIApplication sharedApplication] setStatusBarHidden:YES];

}
于 2013-09-23T06:26:35.997 回答
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

希望有帮助。

于 2013-10-22T07:51:36.863 回答