故事板中的UIImagePickerController:UIImagePickerControllerSourceTypePhotoLibrary显示黑屏

我有一个故事板,我创build了一个UINavigationController实例,并将其自定义类设置为UIImagePickerController

如果我在prepareForSegue设置imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera ,一切工作正常。

如果我在prepareForSegue设置了imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary ,我得到一个大部分是黑色的屏幕,顶部有一个空的灰色条,我不能忽略:

[未来位置的截图 – 我不能发布图像]

我可以通过不使用故事板来解决这个问题。 我有这个问题 – 可以使用这个故事板吗? 如果没有,为什么不呢? 为什么只能用于展示相机?

编辑:一个同事评论说,这可能是一个新的问题ios7

下面的代码不工作,如果segue触发一个故事板

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { NSAssert([segue.destinationViewController isKindOfClass:[UIImagePickerController class]], @"Destination VC should be UIImagePickerController"); UIImagePickerController *imagePicker = (UIImagePickerController*) segue.destinationViewController; imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; imagePicker.allowsEditing = YES; imagePicker.delegate = self; } 

这个问题是重复的iOS7故事板图像select器不工作:(

那里的答案是:

初始化控制器UIImagePickerController *controller = [[segue destinationViewController] init];

…似乎适用于大多数人,所以我build议将这个问题作为已经回答了一段时间的问题的重复来解决。

绝对奇怪。 目前为止唯一的解决scheme是: ios7-storyboard-image-picker-not-working

出于同样的原因,您必须手动初始化UIImagePickerControllerInstance。 我猜测,UIImagePicker的'initWithCodec'方法有些奇怪,但是很难说没有源代码的访问(gee谢谢Apple …)。

PS请确保您也使用正确types的赛格。 UIImagePickerController挑剔每个模式如何显示。 “相机”可以是模式或popover(模态是recromended)。 必须使用popup窗口显示PhotoLibrary。