UIImagePickerController presentViewController - ios7中的状态栏问题

Dev*_*Dev 4 iphone statusbar uiimagepickercontroller ios7

我在iOS 7中面临状态栏问题. 在此输入图像描述

以下是展示此图像选择器的代码

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {

        picker.sourceType =UIImagePickerControllerSourceTypePhotoLibrary;

        if ([self respondsToSelector:@selector(presentViewController:animated:completion:)]){
            [self presentViewController:picker animated:YES completion:^{

                if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
                    [[UIApplication sharedApplication] setStatusBarHidden:YES
                                                            withAnimation:UIStatusBarAnimationNone];
            }];
        }
        else {
            [self presentModalViewController:picker animated:YES];
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我试图选择图像时,屏幕就像下面一样

在此输入图像描述

任何人都可以帮我解决这个问题吗?

Adr*_*n P 6

试试这个

- (void)imagePickerController:(UIImagePickerController *)aPicker didFinishPickingMediaWithInfo:(NSDictionary *)info {

// for iOS7
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {

    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}
Run Code Online (Sandbox Code Playgroud)

编辑:

这是一个更容易的解决方案.

在plist中添加布尔基于View控制器的状态栏外观,并将其值设置为NO.然后在您的app appate application didFinishLaunchingWithOptions声明以下内容:

[application setStatusBarHidden:NO];
[application setStatusBarStyle:UIStatusBarStyleDefault];
Run Code Online (Sandbox Code Playgroud)

这应该在启动相机时处理状态栏.然后对于相机胶卷部件,只需在视图控制器中添加以下方法即可为其设置代码UIImagePickerController

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
Run Code Online (Sandbox Code Playgroud)

选择相机胶卷时应该注意模态视图状态栏.

希望这有助于人类.