Используйте UIImagePickerController на симуляторе iphone

У меня есть метод, который снимает фотографии из галереи или с камеры

-(IBAction) getPhoto:(id) sender { UIImagePickerController * picker = [[UIImagePickerController alloc] init]; picker.delegate = self; if((UIButton *) sender == choosePhotoBtn) { picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; } else { picker.sourceType = UIImagePickerControllerSourceTypeCamera; } [self presentModalViewController:picker animated:YES]; } 

Но когда я запускаю его на симуляторе, код не работает. И он не работает в picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum и picker.sourceType = UIImagePickerControllerSourceTypeCamera

Проблема в симуляторе или в коде?

  • Немодальный UIImagePickerController, нажмите, чтобы сфокусироваться не работает
  • Отображение пользовательской кнопки на экране камеры
  • UIImagePickerController вылетает на alloc / init
  • UIImagePickerControllerEditedImage не отображает изображение из изображения
  • Перемещение и масштаб не работают, если наложение на камеру
  • UIImagePickerController - отображает изображение на квадрат (на портрете)
  • Программно определить доступные разрешения камеры iPhone
  • Почему создатель imagepickercontroller: didFinishPickingMediaWithInfo вызывается, когда приложение просыпается после перехода к фону во время сжатия экрана?
  • 4 Solutions collect form web for “Используйте UIImagePickerController на симуляторе iphone”

    Попробуй это,

      if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; } else { picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; } [self.navigationController presentModalViewController:picker animated:NO]; 

    Если вы создаете приложение для iPad. Вам нужно будет представить галерею в элементе управления popOver.

    В симуляторе ваш picker.sourceType = UIImagePickerControllerSourceTypeCamera не будет называться, поскольку в симуляторе нет камеры. Также рекомендуется проверить, доступен ли тип источника, чтобы избежать сбоев.

     #import <MobileCoreServices/UTCoreTypes.h> …. if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { UIImagePickerController *imagePickerCamera =[[UIImagePickerController alloc] init]; imagePickerCamera.delegate = self; imagePickerCamera.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeImage,nil]; imagePickerCamera.allowsEditing = YES; imagePickerCamera.sourceType = UIImagePickerControllerSourceTypeCamera; [self presentViewController:imagePickerCamera animated:YES completion:nil]; } else if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum]) { UIImagePickerController *imagePickerAlbum =[[UIImagePickerController alloc] init]; imagePickerAlbum.delegate = self; imagePickerAlbum.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeImage,nil]; imagePickerAlbum.allowsEditing = YES; imagePickerAlbum.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [self presentViewController:imagePickerAlbum animated:YES completion:nil]; } 

    Версия Swift 2.2:

     if UIImagePickerController.isSourceTypeAvailable(.Camera) { picker!.sourceType = .Camera } else { picker!.sourceType = .SavedPhotosAlbum // or .PhotoLibrary } 

    Swift 3.0 verison:

     if UIImagePickerController.isSourceTypeAvailable(.camera) { picker.sourceType = .camera } else { picker.sourceType = .savedPhotosAlbum // or .photoLibrary } 

    В симуляторе вы также не должны устанавливать cameraCaptureMode и showsCameraControls .

    Аналогично приведенным выше ответам, но я нашел это проще. Покажите всплывающее предупреждение, если на устройстве нет камеры (например, симулятора). Сэм код, различное использование:

     //button if to take a photo - (IBAction)takePhoto:(id)sender { //checks if device has a camera if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { UIAlertView *noCameraAlert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"You don't have a camera for this device" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; //shows above alert if there's no camera [noCameraAlert show]; } //otherwise, show a modal for taking a photo else { UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; imagePicker.delegate = self; imagePicker.allowsEditing = YES; imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; [self presentViewController:imagePicker animated:YES completion:NULL]; } } 
    Interesting Posts

    iOS 6: как принудительно изменить ориентацию при нажатии контроллера просмотра в стек навигационного контроллера

    Автоматически включать громкоговоритель во время звонка

    Затухание тени вместе с SKSpriteNode, который отбрасывает ее

    Как сохранить PDF-файл, отображаемый в элементе управления UIWebview (БЕЗ перезагрузки его из сети)?

    Предотвращение поворота и масштабирования MPMoviePlayerController на портрет при полноэкранном режиме

    Почему мой UIView не растет с CGAffineTransformMakeScale?

    получение предупреждения о создании делегата для пользовательского протокола

    Xcode 8.1 – Как обновить фреймы для всех просмотров в раскадровке?

    Заголовок просмотра коллекции не отображается

    UIImage resizableImageWithCapInsets – можно ли это указать с помощью наконечника?

    удалить все пробелы в панели навигации медиа-запросов

    Направление снарядов / пулей Cocos2d

    Пользовательский UIView для отображения видео

    Как определить метод протокола является необязательным во время выполнения?

    Можем ли мы использовать API Google Maps JavaScript v3 без назначения карты?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.