Портрет 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; } 
  • Подробный просмотр UISplitViewController скрыть UITabBarController в компактном режиме
  • Сбой SplitViewController в портретном представлении (ipad)
  • Как сообщить родительскому диспетчеру просмотра об изменении ориентации экрана в модульном контроллере просмотра?
  • Вращение UISplitViewController iOS8 работает не так, как ожидалось
  • Можно ли повторно назначить rootviewcontroller окна снова и снова в этом случае ...?
  • UISplitViewController как дочерний элемент пользовательского контроллера панели вкладок
  • Контроллер панели вкладок с семью вкладками, пять вкладок приводят к контроллерам Split View
  • Как я должен представить UISearchController с помощью адаптивного пользовательского интерфейса UISplitView?
  • Нарисуйте разделительную линию в сочетании с автоматической компоновкой
  • Изменение панели навигации детализации в UISplitViewController в режиме портрета
  • MGSplitViewController изменяет подробный контроллер представления
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.