UIPopoverController中的iPad UIImagePicker仅选择已保存的图像(不是来自相册)?

时间:2010-05-27 09:52:54

标签: ipad uiimagepickercontroller uipopovercontroller

在我的iPad应用程序中,我让用户使用以下代码选择图像:

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

UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:picker];
self.popoverController = popover;          
popoverController.delegate = self;
[popoverController presentPopoverFromRect:self.view.frame
                                   inView:self.view
                 permittedArrowDirections:UIPopoverArrowDirectionAny
                                 animated:YES];
[picker release];

(我已将该类设置为UIPopoverControllerDelegate和UIImagePickerControllerDelegate,并且我已为两个委托设置回调。)

现在,奇怪的是,如果我从“已保存的照片”相册中选择一个图像,我的“imagePickerController:didFinishPickingImage”回调方法会被调用,我得到一个图像,一切都很好。

但是,如果我从任何其他专辑中选择一张图片,我的“imagePickerControllerDidCancel”回调会被调用 - 而且我没有收回图片。

有什么想法吗?我在网上搜索过高......

谢谢,  鲁文


情节变浓......

添加时:
    allowsEditing = YES;

我仍然可以从“已保存的照片”相册中选择(和裁剪/缩放)图像 - 但在尝试使用其他相册中的图像时,iPad会因调试器显示崩溃而崩溃:

2010-06-03 08:16:06.759 uPrintMobile [98412:207] *由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'* - [NSCFDictionary setObject:forKey:]:尝试插入nil值(键:UIImagePickerControllerOriginalImage)'

仍然没有线索......

2 个答案:

答案 0 :(得分:2)

我知道这是几个月之后,但我在同样的问题上挣扎,发现尽管这里有很多次被问到,但它从未得到过回答。好吧,我很高兴地说我把它想出来了,所以我把它发布在搜索上首先出现的一些几乎相同的问题上。

我在这里发了完整的答案:
didFinishPickingMediaWithInfo return nil photo

答案 1 :(得分:0)

尝试围绕UIImagePickerControllerSourceTypePhotoLibrary的其他选项进行游戏 在您的委托方法中,检查条件如

`if( image is from photo library ) {
   // do something
} else if ( image from saved albums ) {
   // do something
}`