UIImagePickerController не будет показывать камеру, только ролик камеры - PullRequest
3 голосов
/ 21 января 2012

У меня есть пользовательский контроллер вида, который я использую, у которого есть пара кнопок, одна для фотографирования и одна для выбора фотографии. Когда вы выбираете фото, он показывает рулон камеры без проблем. Тем не менее, когда вы выбираете сделать снимок, на нем все равно показывается снимок с камеры - или поток фотографий или что-либо, кроме самой камеры, даже если я использую iPhone с идеально работающей камерой.

- (IBAction)getPhoto:(id)sender
{
  [self makeUIImagePickerControllerForCamera:NO];
}

- (IBAction)takePhoto:(id)sender
{
    [self makeUIImagePickerControllerForCamera:YES];
}

- (void) makeUIImagePickerControllerForCamera:(BOOL)camera
{
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
  picker.delegate = self;
    if (camera) {
        NSLog(@"!!! Show camera");
        picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    } else {
        picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    }

    [picker setMediaTypes:[NSArray arrayWithObjects:(NSString *) kUTTypeImage, nil]];

    [self presentModalViewController: picker animated: YES];
}

Код выше - именно то, что я использую. Мне просто нужно заставить камеру на самом деле показать, как-нибудь. Спасибо!

* Примечание: я использую iOS 5 и ARC.

Ответы [ 2 ]

4 голосов
/ 21 января 2012

Это может быть слишком очевидно, но просто хочу убедиться, что мы покрываем основы. Вы пытаетесь это сделать на устройстве, а симулятор не правильный? Симулятор всегда будет подтягивать камеру, только если камера должна показывать.

0 голосов
/ 21 января 2012

Если вы еще этого не сделали, вам следует убедиться, что камера действительно доступна на текущем устройстве.Если это не так, действие «takePhoto» не должно быть доступно пользователю.Вы можете сделать это так:

if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
   // ... enable camera
} else {
  // ... only enable the user to select from their photo album
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...