【问题标题】:black UIImagePicker preview ios7黑色ImagePicker预览iOS 7
【发布时间】:2013-12-20 18:52:18
【问题描述】:

我正在获得黑色图像选择器预览。如果我删除该应用程序然后再次运行它,则不会发生这种情况。因此,该应用程序在安装到我的设备后第一次运行时它可以工作。但是,如果我在那之后打开我的图像选择器控制器并捕获图像,则预览是黑色的。我已经阅读了所有提到后台线程的答案,但我没有运行任何后台线程。我不确定是什么原因造成的。它第一次完美地工作,但之后就再也没有工作了。

   - (void)viewWillAppear:(BOOL)animated {

     [super viewWillAppear:animated];

    //Image Picker settings
    self.imagePicker = [[UIImagePickerController alloc] init];
    self.imagePicker.delegate = self;
    self.imagePicker.allowsEditing = NO;


    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

        self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;

    } else {

        self.imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    }

    self.imagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:self.imagePicker.sourceType];

    [self presentViewController:self.imagePicker animated:NO completion:nil];

    }

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

        NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];

        if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {

            //dismiss view controller
            [self dismissViewControllerAnimated:YES completion:nil];
        }
    }

【问题讨论】:

    标签: ios objective-c uiimagepickercontroller


    【解决方案1】:

    不要从视图控制器的viewDidLoad 方法中显示图像选择器。当viewDidLoad 正在运行时,您的视图控制器尚未添加到视图控制器层次结构中。您可以尝试从viewDidAppear 提交它,这可能会解决它。

    【讨论】:

    • 根据您的编辑,您没有调用 [super viewWillAppear:animated],而我的回答是在 viewDidAppear: 中进行,而不是 viewWillAppear:,因为在 viewWillAppear: 中仍然不是您应该尝试从中展示任何内容。
    • 它需要在 viewWill 中,如果我把它放在 viewDid 我的视图在图像选择器出现前一秒钟可见。
    • 我应该为此尝试使用 2 个不同的视图控制器吗?一个显示图像选择器,然后在选择图像时转到我的另一个视图?
    • 在 viewDidAppear: 中尝试一下,看看它是否能解决问题。因为我认为从 viewWillAppear 执行它不会正常工作:所以我很确定这就是您遇到问题的原因。它无法从一个尚未完成显示的视图控制器中正确呈现模态视图控制器。
    • 将其移至 viewDiDAppear。仍然是同样的问题。
    猜你喜欢
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多