2012-09-06 5 views
0

가능한 중복 :
UIPopover for iphone 4.0카메라 라이브러리 문제

나는 엑스 코드의 보편적 인 응용 프로그램을 가지고있다. 사용자가 iPad를 사용하는 경우 라이브러리 버튼의 이미지를 사용하면 효과적입니다. 그러나 iPhone을 사용하는 경우 버튼이 작동하지 않습니다.

여기에 오류가 있습니다.

'NSInvalidArgumentException'이라는 캐치되지 않은 예외로 인해 앱이 종료됩니다. 이유는 : 'UIUserInterfaceIdiomPad에서 실행되지 않을 때 호출됩니다.'- [UIPopoverController initWithContentViewController :]

도와주세요.

여기 내 코드입니다.

- (IBAction) useCameraRoll: (id)sender 
{ 

if ([self.popoverController isPopoverVisible]) { 
[self.popoverController dismissPopoverAnimated:YES]; 

} else { 
if ([UIImagePickerController isSourceTypeAvailable: 
    UIImagePickerControllerSourceTypeSavedPhotosAlbum]) 
{ 
    UIImagePickerController *imagePicker = 
    [[UIImagePickerController alloc] init]; 
    imagePicker.delegate = self; 
    imagePicker.sourceType = 
    UIImagePickerControllerSourceTypePhotoLibrary; 
    imagePicker.mediaTypes = [NSArray arrayWithObjects: 
           (NSString *) kUTTypeImage, 
           nil]; 
    imagePicker.allowsEditing = YES; 

    newMedia = NO; 
} 
} 
} 

다음 코드는 어떻게 병합합니까? 아이폰에서 실행하는 동안 (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad는) 다른 {여기에 팝 오버 코드를 추가} 경우

답변

0

충돌하는 이유는 UIPopoverController은 아이 패드로 사용할 수 있습니다 {
여기에 팝 오버에 대한 대안을 추가}, 당신은 그것을 사용할 수 없습니다 . 그래서 대안을 찾아야합니다.

+0

아이폰의 UiPopoverController와 매우 비슷한 것을 만들고 싶다면이 대답을 시도하십시오. http://stackoverflow.com/a/4124016/1451709 –

+0

iPad 용으로 유지하고 iPhone 용으로 제거 할 수있는 방법이 있습니까? –

+0

예, 가능합니다. 단순히 응용 프로그램이 Iphone 또는 Ipad에서 실행 중인지 확인하십시오. 다음 코드를 사용하기 (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 다른 { 여기 팝 오버 코드를 추가} 나는이 질문에 대한 내 코드를 추가 –