Просмотр представлен с мастер-панели UISplitViewController, не вращающейся при повороте с портрета на альбомный (iPad)

Я представляю модальный вид и лист действий из мастер-панели UISplitViewController. iOS 9.3

1) Если я представляю представление, когда iPad находится в портретном режиме и поворачивает iPad на альбомный, тогда экран не вращается. введите описание изображения здесь
2) Но если я представляю представление, когда iPad находится в ландшафтном режиме и поворачивает iPad, портрет, затем экран вращается.

Как добиться вращения?

Ответ 1

Существует два решения проблемы:

  • Невозможно представить модальные представления с главной панели, но вы должны делать это из самого UISplitViewController.

    splitViewController.preferredDisplayMode =UISplitViewControllerDisplayModeAllVisible; // For displaying the master panel always as is in the screen shot in the Question
    modalViewController.modalPresentationStyle = UIModalPresentationFormSheet; // For displaying the modalViewController in form sheet style
    [splitViewController presentViewController:modalViewController animated:TRUE completion:nil]; // Note: modalViewController is presented from UISplitViewController and not from master panel of split view
    
  • Мастер-панель пролитого представления отображается в popover в портретном режиме, поэтому изменение ротации устройства должно проходить через контроллер popovercontroller. Я догадываюсь, что в этих точках разрыв цепи. Итак, чтобы разрешить вызов проблемы

    [spliVC setPreferredDisplayMode:UISplitViewControllerDisplayModePrimaryHidden];  
    

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

EDIT: Я также заметил, что если представление "Сплит" находится в режиме UISplitViewControllerDisplayModeAllVisible, то даже представление модального vc с мастер-панели (скажем, простым модальным сегментом в раскадровке) не дает проблемы с ротацией. Я подтвердил это в симуляторе iOS 9.3.