Запуск приложения iPhone в режиме камеры показывает только пустой экран - PullRequest
0 голосов
/ 22 февраля 2012

Я создаю приложение для iPhone, которое должно запускаться в режиме камеры (с пользовательским макетом вверху, но это будет позже). Я уже создал версию этого приложения, в которой я нажимаю кнопку, которая позволяет мне выбрать фотографию из альбома iPhone или сделать новую фотографию.

Попытка использовать один и тот же код в другом сбое.

Изначально у меня была функция takePicture, которую я использовал для запуска камеры

- (void)takePicture
{   
    isInCaptureMode = YES;

    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];

    imagePicker.mediaTypes =
    [UIImagePickerController availableMediaTypesForSourceType:
     UIImagePickerControllerSourceTypeCamera];

    [imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];

    imagePicker.videoQuality = UIImagePickerControllerQualityTypeMedium;

    // set delegate
    [imagePicker setDelegate:self];

    // Place image picker on the screen
    [self presentModalViewController:imagePicker animated:YES];

    [imagePicker release];
}

Поэтому я подумал про себя: «Я, вероятно, могу создать одно приложение представления, добавить этот код в функцию viewDidLoad контроллера представления и использовать его в качестве отправной точки». Но, увы, я застрял там. Когда я это делаю, приложение запускается и (если на устройстве есть камера) экран становится черноватым, если на устройстве нет камеры (iPad или симулятор), приложение вылетает.

Первоначально я создал приложение с использованием Xcode 3, но теперь перешел на 4.2, хотя оригинальное приложение работает нормально в 4.2 (хотя после небольшой настройки)

Может кто-нибудь объяснить, почему это происходит?

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

Вы можете попробовать следующий код, чтобы увидеть, что произойдет?

UIImagePickerController *picker = [[UIImagePickerController alloc] init];

if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) {
  picker.sourceType = UIImagePickerControllerSourceTypeCamera;
} else {
  //you can get picture from Library is there is no camera 
  picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
}

picker.delegate = self;
[self presentModalViewController:picker animated:YES];

[picker release];
0 голосов
/ 06 марта 2012

Итак, как я уже сказал в комментарии.Как только я вызвал код из viewDidAppear вместо viewDidLoad, он наконец запустился ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...