我将在UISplitViewController
的主面板中呈现模态视图和操作表。 iOS 9.3
1)如果我在iPad处于纵向模式时显示视图并将iPad旋转到横向,则屏幕不会旋转。
2)但是如果我在iPad处于横向模式时呈现视图并将iPad旋转为纵向,则屏幕正在旋转。
如何实现轮换?
答案 0 :(得分: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
在纵向模式下,溢出视图的主面板显示在弹出框中,因此设备旋转更改必须通过popovercontroller。我猜这个点断链。所以,要解决问题调用
[spliVC setPreferredDisplayMode:UISplitViewControllerDisplayModePrimaryHidden];
(来自prepareForSegue
)。我不确定代表们是否采用这种方法。
修改强>
我还观察到,如果拆分视图处于UISplitViewControllerDisplayModeAllVisible
模式,那么甚至从主面板呈现模态vc(假设通过故事板中的简单模态segue)也不会给出旋转问题。我已经在iOS 9.3模拟器中证实了这一点。