我正在使用cocos2d在iPad应用程序上工作,并且试图使从库中选择图片或使用相机拍摄图片以在应用程序内使用。我昨天和今天整天都在疯狂地用google搜索,试着一起做一些上面的事情,但是我应该首先承认我并不知道自己在做什么。presentViewController导致崩溃
我现在的工作方式是点击当前的用户图像,它会弹出一个菜单,询问您是否要从相机或图库上传不同的图片。选择摄像头调用以下(和库版本基本相同):
- (void) onGetCameraImage
{
UIImagePickerController* imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.allowsEditing = NO;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
[imagePicker presentViewController:[CCDirector sharedDirector] animated:YES completion:NULL];
}
当我尝试和测试这个(采摘库,当然,因为模拟器不能做的摄像头,是的,我的确打算实现了无摄像头的检查),我得到以下崩溃:
2013-04-07 19:21:50.248 prototype1[20897:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present modally an active controller <UIImagePickerController: 0x9e87ac0>.'
我认为这是拍击presentViewController
电话,但我有一个可怕的时间试图找出我在做什么错的,因为所有的教程和stackoverflow的答案使用不推荐的模态函数调用!我怀疑我只是在我之前的代码中做过各种疯狂的BS?无论哪种方式,我不知道如何让我的代码工作。
很多这种代码已经从堆栈溢出中收集到,所以我不能保证它的任何敏感性 - 我对iOS编码非常陌生,基本上被抛入这个项目,我们只是试图使其工作。请帮忙!
这是有道理的......我原以为sharedDirector是的UIViewController的子类,所以我试图用它作为视图控制器,I认为。然而,我知道我不能只用self而不是imagePicker,因为这是CCLayerColor的一个子类(如果我尝试,xcode会大叫我)。我不知道我还能尝试什么? – dunvi 2013-04-08 03:03:20
没有等待。我交换了[CCDirector sharedDirector]和imagePicker,它的工作原理...现在我只是得到这个错误:'2013-04-07 20:05:31.678 prototype1 [23030:c07] ***由于未捕获的异常'NSInvalidArgumentException' ,原因:'在iPad上,UIImagePickerController必须通过UIPopoverController'呈现,我知道这意味着什么TT 感谢您的帮助! – dunvi 2013-04-08 03:06:47
当然,让我知道你是否有更多麻烦。与Cocos和UIKit的组合事情变得过于复杂:-) – 2013-04-08 03:39:16