Портрет UISplitViewController для поворота на пейзаж отключен в iOS 8, когда появился popover

Хорошо, это странно.

В iOS 8, если popover отображается с мастер-панели в UISplitViewController, а в портрете, вращение отключено. Я проверил множество тестов и подтвердил, что это так.

Существует частный метод в UISplitViewController, _shouldPreventAutorotation, который вызывается при вращении и проверяет свойство presentationController на контроллере контента popover. Если это возвращает значение, отличное от нуля, вращение отключено. Если вы переопределите свойство и верните нуль, поворот снова будет включен.

Кто-нибудь знает, почему это поведение было добавлено в iOS 8?

Я загрузил тестовый проект, демонстрирующий это поведение здесь .

One Solution collect form web for “Портрет UISplitViewController для поворота на пейзаж отключен в iOS 8, когда появился popover”

Итак, после некоторого расследования и декомпиляции в Hopper существует частный метод в UISplitViewController, который вызывается, когда устройство повернуто, что определяет, следует ли отключать ротацию.

Если мастер-панель видна, на главной панели есть дочерний контроллер модального представления (в данном случае – popover), а свойство presentationController представленного popover возвращает значение, отличное от нуля, тогда вращение отключено.

Я могу переопределить это поведение, переопределив -представляя контроллер на контроллере popover и возвращая нуль. Не уверен в каких-либо побочных эффектах, но он работает.

- (UIPresentationController *)presentationController { return nil; } 
  • DetailView исчезает после выбора навигации внутри UISplitView
  • Измените размер MasterViewController при запуске как popover
  • iOS (iPad) Drag & Drop в UISplitViewController
  • UISplitViewController - неправильный размер размера представления
  • UISplitViewController, представленный модально, никогда не выпускается
  • IOS новое приложение для iPhone iPhone UISplitViewController Layout
  • Скрытие наложения UISplitViewController в портрете
  • Представление модального просмотра в деталях в UISplitViewController
  • UISearchBar не будет отвечать в UISplitviewController Master
  • Контроллер Split View не является контроллером Root View
  • Хороший учебник iPad SplitViewController?
  • Interesting Posts

    iOS Преобразование MKMapView в UIImage. Никогда не входит в блок

    Удаление нескольких пространств в NSString

    Максимальный размер данных, которые iOS может сохранять локально

    Проведите по экрану, чтобы удалить ячейку в таблице, используя NSFetchedResultsController

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

    Встраивание локального видео в UIView

    Добавление участника в событие в iOS

    Несколько элементов реагируют на событие касания на мобильном Webkit и Hammer JS

    Инструмент для отображения содержимого файла профиля Provisioning Profile (.mobileprovision)?

    Как установить размер UIView init с помощью раскадровки?

    Как правильно передать селектор в качестве параметра в swift

    Как создать приложение React Native iOS, получить файл .app и развернуть его на устройстве?

    Звуковой сигнал не работает, когда приложение phonegap находится в фоновом режиме на iOS

    Проблемы с пользовательским переходом iOS 7

    iOS Tesseract: плохие результаты

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