UIImagePickerController вылетает в iPad - PullRequest
       37

UIImagePickerController вылетает в iPad

10 голосов
/ 19 февраля 2011
-(IBAction)selectPressed:(id)sender
{
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentModalViewController:picker animated:YES];
    [picker release];
}

Я тестирую этот код на симуляторах iPad и iPhone. В симуляторе iPhone (и на реальных айфонах тоже) все в порядке - появляется галерея. Но на симуляторе iPad (у меня нет устройства) он вылетает. Есть идеи почему?

Ответы [ 4 ]

14 голосов
/ 19 февраля 2011

Пожалуйста, прочитайте сообщения об исключениях в журнале устройства:

On iPad, UIImagePickerController must be presented via UIPopoverController

7 голосов
/ 22 апреля 2011

Макс сказал:

На iPad UIImagePickerController должен быть представлен через UIPopoverController

Теперь кажется, что мы можем представитьModalViewController как UIImagePickerController, когда его sourceTypePlayerCourceCick установлен в UIImagePortЭто должно быть для поддержки камер iPad 2 в полноэкранном режиме.Макс прав, что presentModalViewController падает на iPad, если для sourceType задано другое значение.

2 голосов
/ 22 января 2013

попробуйте использовать этот код для фотобиблиотеки ipad,

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
[popover presentPopoverFromRect:CGRectMake(0.0, 0.0, 400.0, 400.0) 
                         inView:self.view
       permittedArrowDirections:UIPopoverArrowDirectionAny 
                       animated:YES];

или http://www.techotopia.com/index.php/An_Example_iOS_4_iPad_Camera_and_UIImagePickerController_Application_(Xcode_4) ссылка ..

2 голосов
/ 19 февраля 2011

При отображении модального контроллера представления на iPad этому контроллеру представления также необходимо установить его свойство modalPresentationStyle для отображения входящего представления.

Вот опции, доступные вам из документации:

typedef enum {
   UIModalPresentationFullScreen = 0,
   UIModalPresentationPageSheet,
   UIModalPresentationFormSheet,
   UIModalPresentationCurrentContext,
} UIModalPresentationStyle;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...