【发布时间】:2014-08-28 20:56:47
【问题描述】:
在采用新的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;
}
这给了我想要的纵向行为,但这会破坏横向模式(我想表现得像 UISplitViewControllerDisplayModeAllVisible)。如果您完成了推动然后旋转设备,左侧仍然隐藏(如预期的那样)。我找不到合适的地方来重新设置旋转的首选模式以显示左侧(因为特征集合不能用于在 iPad 上区分横向与纵向)。
如何手动触发覆盖层的关闭?
重复说明: iOS8 已完全更改 UISplitViewController,因此 14 年 6 月之前的所有其他 SO 答案可能都是错误的(我已经挖掘了其中的许多, 以防万一)
【问题讨论】:
标签: ios uisplitviewcontroller ios8 screen-rotation ios-universal-app