黑色UIImagePicker预览ios7

时间:2013-12-20 18:52:18

标签: ios objective-c uiimagepickercontroller

我正在获取黑色图像选择器预览。如果我删除应用程序然后再次运行它,则不会发生这种情况。因此,应用程序首次安装到我的设备后运行它可以工作。但是,如果我在此之后调出图像选择器控制器并捕获图像,则预览为黑色。我已经阅读了所有提到背景线程的答案,但我没有运行任何后台线程。我不确定是什么导致了这一点。它第一次完美地工作但在那之后它永远不会起作用。

   - (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];
        }
    }

1 个答案:

答案 0 :(得分:0)

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