UIImagePickerViewController в ландшафтном режиме

введите описание изображения здесь Я работаю над приложением, которое полностью в ландшафтном режиме. По одному из представлений мне нужно открыть камеру (UIImagePickerController) с наложением. Но когда я нажимаю кнопку, чтобы открыть камеру, она обрушивается на эту проблему, т. Е. Причина:

«Поддерживаемые ориентации не имеют общей ориентации с приложением, и shouldAutorotate возвращает ДА ​​'

Я также помещал эту строку в viewcontroller, но не влиял.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); } 

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

One Solution collect form web for “UIImagePickerViewController в ландшафтном режиме”

Если вы используете UINavigationController качестве контроллера базового представления, этот фрагмент кода, который вы предоставили, просто не работает. Поскольку вы добавляете этот код в UIViewController но он уже внедрен в UINavigationController .

Чтобы преодолеть эту проблему, вы должны создать подкласс UINavigationController и добавить этот связанный с ландшафтом код в этот подкласс. Затем назначьте этот подкласс базовому навигационному контроллеру вашей раскадровки. Тогда этот вопрос будет решен.

Это ваш подкласс класса навигации .h-файл

 @interface YourCustomNavigationController : UINavigationController @end 

И добавьте это в свой файл .m-файла подкласса контроллера навигации.

 - (BOOL)shouldAutorotate { //returns true if want to allow orientation change return YES ; } - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskLandscapeLeft; } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return UIInterfaceOrientationLandscapeLeft; } 

И не забудьте присвоить этот класс базовому навигационному контроллеру с помощью инсталлятора идентификации конструктора интерфейса.

Настройки проекта,

введите описание изображения здесь

РЕДАКТИРОВАТЬ:

Вы можете представить UIImagePickerController в ландшафтном режиме. Независимо от того, что говорит документация, вы можете фактически подклассифицировать его и переопределить его функциональность для работы в ландшафтном режиме. (по крайней мере, его работа над iOS 7)

Для этого вы должны создать подкласс UIImagePickerController и добавить в этот подкласс выше строки. Настройки проекта должны быть такими же, как снимок экрана (по крайней мере, один ландшафтный режим и один портретный режим должны быть отмечены галочкой).

Затем используйте этот подклассифицированный контроллер ImagePicker, когда вы представляете камеру. Он будет успешно загружать камеру в ландшафтном режиме. Но стандартные элементы управления камерой будут смещены и испорчены. Поэтому лучше скрыть defaultControlls ( picker.showsCameraControls = NO; ) так же, как и вы, и вместо этого использовать оверлейное представление.

  • Память Предупреждение UIImagepickerController IOS 7
  • Ошибка pushViewController от UIImagePickerController задвигает вид за панель навигации
  • сохранение изображения в библиотеке фотографий с помощью Swift 2.0
  • Принуждение UIImagePickerController для открытия квадратной камеры с Swift
  • Пользовательские кнопки «Использовать», «Отмена», «Повторить» и «Обратная камера» используются с помощью UIImagePickerController
  • Недопустимый метод делегата UIImagePickerController (набор делегатов для себя)
  • Получение URL-адреса снимка камерой с помощью Photos Framework
  • UIImagePickerController с allowEditing не позволяет панорамировать обрезку
  • iOS 10 error <private> при использовании UIImagePickerController
  • Перемещение и масштаб не работают, если наложение на камеру
  • UIImagePickerController Cropping with allowEditing не работает для пейзажных изображений
  • Interesting Posts

    iOS: Как скопировать HTML в буфер вырезания?

    Сброс свойства zoomScale UIScrollView при авторотации

    Нарисуйте прямую линию, используя OpenGL ES в iPhone?

    Как интегрировать функцию skype в моем родном приложении

    Зачем нужно поле plist ID (CFBundleURLName) для использования специальной схемы URL в iOS?

    Кодировать аудиопоток h264, совместимый с iOS, с FFMPEG

    Приложение Xbox IOS Photo Gallery

    Как сделать UINavigationBar фоном прозрачным?

    Есть ли способ использовать анимацию UIView с пользовательским уравнением упрощения

    UIBlurEffect не работает при попытке сделать скриншот программно быстрым

    Когда выполняется захват ios auto screen?

    Перенаправление на экран настроек для входа в Twitter

    Разница между зависимостью podspec и декларацией подфайла Podfile

    UIWebView в ячейке UITableView – WebView не заполняет таблицу Cell

    Ошибка: неверная версия битового кода (производитель: «800.0.24.1_0» Reader: «703.0.31_0») с XCode 7.3.1

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