我有一个故事板,我在其中创建了一个UINavigationController
实例并将其自定义类设置为UIImagePickerController
。
如果我在imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera
中设置prepareForSegue
,一切正常。
如果我在imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary
中设置prepareForSegue
,我会看到一个大部分黑屏,顶部有一个空的灰色条,我无法解雇:
[截图的未来位置 - 我无法发布图片]
我可以通过不使用故事板来解决这个问题。我的问题 - 这可以与故事板一起工作吗?如果没有,为什么不呢?为什么它只适用于展示相机?
编辑:一位同事评论说这可能是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;
}
答案 0 :(得分:2)
此问题与iOS7 Storyboard image picker not working :(
重复那里的答案是:
初始化控制器
UIImagePickerController *controller = [[segue destinationViewController] init];
......对大多数人来说似乎都有效,所以我建议将其作为该问题的副本关闭,这已被回答了一段时间。
答案 1 :(得分:0)
绝对奇怪。我到目前为止找到的唯一解决方案是:ios7-storyboard-image-picker-not-working
出于同样的原因,您必须手动初始化UIImagePickerControllerInstance。 我猜这个' initWithCodec'有一些时髦的东西。 UIImagePicker的方法但很难说没有访问源代码(gee感谢Apple ...)。
P.S。确保您也使用正确类型的segue。 UIImagePickerController对于每种模式的显示方式都很挑剔。 '相机'可以是模态或弹出(模态被推荐)。使用popover显示PhotoLibrary 必须。