繁体   English   中英

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

[英]UIImagePickerController in Storyboard: UIImagePickerControllerSourceTypePhotoLibrary displays black screen

我有一个故事板,我创建了一个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 Storyboard图像选择器不能正常工作的重复:(

那里的答案是:

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

...似乎适用于大多数人,所以我建议将其作为该问题的副本关闭,该问题已经回答了一段时间。

绝对奇怪。 到目前为止我找到的唯一解决方案是: ios7-storyboard-image-picker-not-working

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

PS确保您也使用正确类型的segue。 UIImagePickerController对于每种模式的显示方式都很挑剔。 '相机'可以是模态或弹出(模态被推荐)。 必须使用弹出窗口显示PhotoLibrary。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM