UIImagePickerController 在 iOS 8 中无法正确呈现

3
我想用以下代码展示UIImagePickerController:

我想用以下代码展示UIImagePickerController:

self.pickerController = [[UIImagePickerController alloc] init];
self.pickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
self.pickerController.delegate = self;

[self presentViewController:self.pickerController animated:YES completion:nil];

在iOS 7及以下版本中运行正常,但在iOS 8中出现以下故障:
1. 在转换为图像选择器控制器(垂直覆盖动画)时,选择器控制器的背景颜色是透明的,显示出底部的呈现视图控制器。过渡完成后,选择器的表视图将突然显示而没有动画。 2. 有时,选择器的表视图根本不会显示,而是出现一个空白的黑屏。导航栏仍然存在,但没有任何条形按钮项,因此用户必须强制退出应用程序。
有人知道这是怎么回事吗?

你是否实现了任何 imagePickerController 方法来查看是否仍然发生这种情况? - tudoricc
是的,我已经实现了 imagePickerController:didFinishPickingMediaWithInfo: - Andree
我在 Swift 中做了同样的事情,它能够正常运行,所以我真的不知道你做错了什么。我实现了 didFinishPickingImage editingInfo 方法和 imagePickerControllerDidCancel 方法。 - tudoricc
设备控制台中是否有任何线索? - Walt Sellers
@WaltSellers 对于 UIImagePickerControllerSourceTypePhotoLibrary 没有任何内容,但是对于 UIImagePickerControllerSourceTypeCamera,我得到了以下日志:快照一个尚未渲染的视图会导致空快照。在快照之前确保您的视图至少已经渲染一次或者在屏幕更新后进行快照。 - Andree
我不确定如何修复第一个故障,但第二个故障显然是因为我尝试重用之前已显示过的UIImagePickerController实例。如果我创建一个新实例,问题就解决了。 - Andree
1个回答

7
我找到了这些问题的原因并进行了修复,现在在此记录一下:
  1. 第一个问题出现在我尝试从XCode 5.1编译到iOS 8设备时。我切换到XCode 6 beta 2后,问题就得到了解决。

  2. 第二个问题出现在我尝试重用已经显示过的UIImagePickerController时。在显示之前创建一个新实例,问题就会得到解决。

干杯!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接