Тест камеры ipad 2 с симулятором xcode IOS 5 - PullRequest
1 голос
/ 31 января 2012

Я тестирую приложение камеры ipad с имитатором ipad. Я использовал приведенный ниже код, измените тип источника вместо камеры.

  -(IBAction)useCamera:(id)sender{


    if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]){

    UIImagePickerController *imagePicker = 
    [[UIImagePickerController alloc] init];
    imagePicker.delegate =(id<UINavigationControllerDelegate,UIImagePickerControllerDelegate>) self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    imagePicker.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeImage,nil];
    imagePicker.allowsEditing = NO;
    [self presentModalViewController:imagePicker animated:YES];

    [imagePicker release];
    newMedia = YES;

    }

}

При запуске в симуляторе возникла ошибкав симуляторе ios 5.

   Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:'On iPad,     UIImagePickerController must be presented via UIPopoverController' 

Но он работает на симуляторе 4.3

1 Ответ

2 голосов
/ 31 января 2012

Начиная с iOS5, вам нужно показывать контроллер выбора в виде всплывающего окна, а не в модальном виде.

Из документации Apple: на iPad представьте пользовательский интерфейс с помощью всплывающего окна. Это действительно только в том случае, если для свойства sourceType контроллера средства выбора изображений установлено значение UIImagePickerControllerSourceTypeCamera. Чтобы использовать контроллер всплывающих окон, используйте методы, описанные в разделе «Представление и отклонение всплывающих окон» в Справочнике по классам UIPopoverController.

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html

Вот пример представления UIImagePickerController в представлении popover:

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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...