在采用新的时候,UISplitViewController我试图将更改作为使用UISplitViewControllerDisplayModeAutomatic模式时发生的默认行为.
在纵向工作时,我希望在用户触发推送到细节侧时隐藏主要叠加层.默认情况下,覆盖图保持在屏幕上,直到用户点击细节一侧.
我已尝试将以下内容与委托人一起使用:
- (BOOL)splitViewController:(UISplitViewController *)splitViewController showDetailViewController:(UIViewController *)vc sender:(id)sender
{
if (splitViewController.displayMode == UISplitViewControllerDisplayModePrimaryOverlay) {
[UIView animateWithDuration:0.3 animations:^{
splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden;
}];
}
return NO;
}
Run Code Online (Sandbox Code Playgroud)
这给了我在肖像中所需的行为,但这打破了横向模式(我想表现得像UISplitViewControllerDisplayModeAllVisible).如果您已完成推动然后旋转设备,则左侧仍然是隐藏的(如预期的那样).我无法找到一个appriprite地方来重新设置旋转的首选模式以显示左侧(因为特征集合不能用于告诉iPad上的风景与肖像).
如何手动触发覆盖的解雇?
Dupe注意: iOS8已经UISplitViewController完全改变了,所以在2014年 6月之前所有其他的SO答案都可能是错误的(我已经挖掘了很多,只是因为)
uisplitviewcontroller screen-rotation ios ios-universal-app ios8