2013-03-23 2 views
-1

Я работаю на универсальное приложение, при попытке выбрать фотографию из библиотеки устройств наpresentViewController SIGABRT

IPad я получаю ошибку SIGABRT, но он отлично работает на iPhone

picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
    [self presentViewController:picker animated:YES completion:nil]; //the culprit, why? 

Спасибо за любую помощь заранее!

+0

Как вы создавали экземпляр сборщика? – WolfLink

+0

Какие операционные системы работают на обоих устройствах? –

+0

Обратите внимание, что в консоли должно появиться полное сообщение об ошибке. В этой ошибке четко указывается, в чем проблема. – rmaddy

ответ

1

Пожалуйста, прочитайте документацию для UIImagePickerViewController:

Таблица показывает, что на IPad, если указать тип источника UIImagePickerControllerSourceTypePhotoLibrary или UIImagePickerControllerSourceTypeSavedPhotosAlbum, вы должны представить сборщика изображения с помощью контроллера поповер, как описано в « Представление и увольнение Поповера »в редакции UIPopoverController. Если вы попытаетесь представить средство выбора изображений по умолчанию (полноэкранный) для выбора среди сохраненных изображений и видеороликов, система вызывает исключение.

На iPad, если вы укажете тип источника UIImagePickerControllerSourceTypeCamera, вы можете представить сборщик изображений в соответствии с форматом (полноэкранный) или с помощью popover. Однако Apple рекомендует представить только интерфейс камеры только в полноэкранном режиме.

Вы должны использовать UIPopoverController, чтобы представить средство выбора изображений для библиотеки фотографий на iPad.

0
 // While showing UIImagePickerController in iPad, you must do it using UIPopoverController as follow 


     // Declare UIPopoverController and present your UIImagePickerController using it 
     UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 
     [imagePicker setDelegate:self]; 
     [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
     [imagePicker setAllowsEditing:YES]; 

     popOverController = [[UIPopoverController alloc] initWithContentViewController:imagePicker]; 
     [popOverController presentPopoverFromRect:self.view.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES]; 
Смежные вопросы