Ответ 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.