4

我在 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];
        }
    }

当我尝试选择图像时,屏幕如下所示

在此处输入图像描述

谁能帮我解决这个问题?

4

1 回答 1

6

尝试这个

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

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

    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}

编辑:

这是一个更简单的解决方案。

在您的 plist 中添加基于布尔视图控制器的状态栏外观并将其值设置为 NO。然后在您的应用委托中application didFinishLaunchingWithOptions声明以下内容:

[application setStatusBarHidden:NO];
[application setStatusBarStyle:UIStatusBarStyleDefault];

启动相机时应该处理状态栏。然后对于相机胶卷部分,只需在您放置代码的视图控制器中添加以下方法UIImagePickerController

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

当您选择相机胶卷时,它应该处理模态视图状态栏。

希望这对人有所帮助。

于 2013-10-12T04:50:46.247 回答