我想使用 UIImagePickerController,我找到了这个例子
添加到.h
@interface MenuScene : CCLayer <UIImagePickerControllerDelegate, UINavigationControllerDelegate>
{
UIWindow *window;
UIImage *newImage;
}
添加到.m
-(void)pickPhoto:(UIImagePickerControllerSourceType)sourceType{
UIImagePickerController *picker = [[UIImagePickerController alloc]init];
picker.delegate = self;
picker.sourceType = sourceType;
picker.wantsFullScreenLayout = YES;
[picker presentViewController:picker animated:NO completion:nil];
[[[CCDirector sharedDirector] view] addSubview:picker.view];
}
-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info{
newImage = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
[picker dismissViewControllerAnimated:YES completion:nil];
[picker.view removeFromSuperview];
[picker release];
CCSprite *imageFromPicker = [CCSprite spriteWithCGImage:newImage.CGImage key:@"ImageFromPicker"];
}
我尝试调用[self pickcPhoto:UIImagePickerControllerSourceTypeCamera]
,它在[picker presentViewController:pickerAnimated:NO Completion:nil];
处崩溃,并显示消息
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“应用程序试图在自身上呈现模态视图 Controller 。呈现 Controller 是 . '
我正在 iOS 6 上使用 Cocos2d v2 进行测试,我将感谢您的任何建议。
最佳答案
更改代码如下,只需使用在此行中编辑
注释更改行,或者可以复制该行
-(void)pickPhoto:(UIImagePickerControllerSourceType)sourceType{
UIImagePickerController *picker = [[UIImagePickerController alloc]init];
picker.delegate = self;
picker.sourceType = sourceType;
picker.wantsFullScreenLayout = YES;
[self presentViewController:picker animated:NO completion:nil]; //Edit in this line
[[[CCDirector sharedDirector] view] addSubview:picker.view];
}
-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info{
newImage = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
[self dismissViewControllerAnimated:YES completion:nil]; //Edit in this line
[picker.view removeFromSuperview];
[picker release];
CCSprite *imageFromPicker = [CCSprite spriteWithCGImage:newImage.CGImage key:@"ImageFromPicker"];
}
关于ios - UIImagePickerController 与 Cocos2D 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12971915/