2012-10-19 4 views
2

와 나는 UIImagePickerController를를 사용하려면, 그리고 내가 [self pickcPhoto:UIImagePickerControllerSourceTypeCamera]를 호출하려고UIImagePickerController를가적인 Cocos2D 2.0

-(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"]; 
} 

을하는 .m하는

@interface MenuScene : CCLayer <UIImagePickerControllerDelegate, UINavigationControllerDelegate> 
{ 
    UIWindow *window; 
    UIImage *newImage; 
} 

추가를있는 .h하는

추가 된이 예제를 발견하고 충돌로 인해 [picker presentViewController:picker animated:NO completion:nil]; 메시지로

으로 인해 앱이 종료 됨 uncaught exception 'NSInvalidArgumentException', 이유 : '응용 프로그램이 모달 뷰 컨트롤러를 표시하려고했습니다. 프리젠 테이션 컨트롤러입니다. '

iOS 6에서 Cocos2d v2 테스트를 사용하고 있습니다. 감사의 말을 전합니다.

+0

_ [** picker ** presentViewController : ** picker ** animated : no completion : nil]; _ (굵게 표시된 부분 참조)를 호출 할 때이 설명은 자명합니다. 피커는 피커를 호출 할 수 없습니다 (자체적으로 같은 유형의 uiviewcontroller 같은 클래스는 제가 의미 함). 둘 다 같은 LOL입니다. :) –

+0

hehe .. right totaly miss it. 그런데 왜 모든 예에서 그것을 그렇게 사용합니까? – BW4

+0

당신이 나에게 당신이 따르는 링크를 주시면 제게 그걸 설명 할 수있게됩니다. –

답변

0

그 선을 지나서 복사 할 수 있습니다 iOS6 및 포털 방향과 관련된 문제 ImagePickerController는 포틀랜드에서만 작동하므로 크래시가 발생합니다. 나는이 사건을 감시하고 무언가가 바뀔 때 업데이트 할 것이다.

+0

이 문제가 해결 되었습니까? –

2

변경 코드는 다음과 같이 단지 Edit in this line 코멘트와 함께 라인을 변경하거나 나는이 순간에, 코코스 일부가 발견

-(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"]; 
} 
+0

슬프게도 '인스턴스 메소드'-presentViewController : animated : completion : '찾을 수 없음 ' – BW4

+0

위 내 의견을 참조하십시오 –

관련 문제