我正在获取黑色图像选择器预览。如果我删除应用程序然后再次运行它,则不会发生这种情况。因此,应用程序首次安装到我的设备后运行它可以工作。但是,如果我在此之后调出图像选择器控制器并捕获图像,则预览为黑色。我已经阅读了所有提到背景线程的答案,但我没有运行任何后台线程。我不确定是什么导致了这一点。它第一次完美地工作但在那之后它永远不会起作用。
- (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];
}
}
答案 0 :(得分:0)
不要使用视图控制器的viewDidLoad
方法显示图像选择器。运行viewDidLoad
时,视图控制器尚未添加到视图控制器层次结构中。您可以尝试从viewDidAppear
展示它,这可能会解决它。