在我的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)'
仍然没有线索......
答案 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
}`