Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 故事板中的UIImagePickerController:UIImagePickerController资源类型照片库显示黑屏_Ios_Objective C_Ios7_Uiimagepickercontroller_Photolibrary - Fatal编程技术网

Ios 故事板中的UIImagePickerController:UIImagePickerController资源类型照片库显示黑屏

Ios 故事板中的UIImagePickerController:UIImagePickerController资源类型照片库显示黑屏,ios,objective-c,ios7,uiimagepickercontroller,photolibrary,Ios,Objective C,Ios7,Uiimagepickercontroller,Photolibrary,我有一个故事板,我在其中创建了一个UINavigationController实例,并将其自定义类设置为UIImagePickerController 如果我在prepareforsgue中设置imagePicker.sourceType=UIImagePickerControllerSourceTypeCamera,一切正常 如果我在prepareForSegue中设置imagePicker.sourceType=UIImagePickerControllerSourceTypePhotoLi

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

如果我在
prepareforsgue
中设置
imagePicker.sourceType=UIImagePickerControllerSourceTypeCamera
,一切正常

如果我在
prepareForSegue
中设置
imagePicker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary
,我会看到一个大部分为黑色的屏幕,上面有一个空灰色条,我无法忽略:

[截图的未来位置-我无法发布图像]

我可以通过不使用故事板来解决这个问题。我的问题是,这能和故事板一起工作吗?若否,原因为何?为什么它只适用于展示相机

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

如果序列图像由情节提要触发,则下面的代码不起作用

- (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;

}

真奇怪。到目前为止,我找到的唯一解决方案是:

出于同样的原因,您必须手动初始化UIImagePickerController。 我猜UIImagePicker的“initWithCodec”方法有些古怪,但是如果没有源代码的访问,很难说(哎呀,谢谢苹果…)


另外,请确保您也使用了正确类型的segue。UIImagePickerController对每种模式的显示方式都很挑剔“摄像头”可以是modal或popover(建议使用modal)。PhotoLibrary必须使用popover显示。

此问题与

答案是:

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


…似乎对大多数人都有效,因此我建议将此问题作为已回答了一段时间的问题的副本关闭。

我使用iOS进行了相同的观察8@Jakob--如果对你有用的话,我可以把它作为复制件关上。在此期间,我还没有抽出时间来亲自尝试/解决这个问题。@Jakob--我看到根据那里的一条评论,它对你有用。请投票将其作为副本关闭。谢谢