UISplitViewController以纵向显示主视图上方的细节

我有一个UINplitViewControllerembeddedUINavigationController与一个UINavigationItembutton切换纵向的主视图的显示。 当视图首次以纵向方向加载时,我想要在细节视图上方显示主视图。

我发现的任何类似的例子都显示了纵向和纵向分割屏幕的纵向和纵向视图,但是当UISplitViewController第一次加载的时候,我需要详细视图是纵向全屏,主视图覆盖了详细视图(就好像主视图已经从左侧扫出)。 有谁知道这是怎么做到的吗?

编辑 :这不是重复的。 在评论中发现的答案。 解决方法是在UISplitViewController上使用preferredDisplayMode并将其设置为UISplitViewControllerDisplayModePrimaryOverlay

留下评论和后代的上下文的原始答案。


原始答复

这是一个重复的: iPhone上的纵向UISplitViewController显示细节VC而不是主

作为参考,这种情况下的解决scheme是让实现UISplitViewControllerDelegate的视图控制器使用以下代码:

 - (BOOL)splitViewController:(UISplitViewController *)splitViewController collapseSecondaryViewController:(UIViewController *)secondaryViewController ontoPrimaryViewController:(UIViewController *)primaryViewController { if ([secondaryViewController isKindOfClass:[UINavigationController class]] && [[(UINavigationController *)secondaryViewController topViewController] isKindOfClass:[DetailViewController class]] && ([(DetailViewController *)[(UINavigationController *)secondaryViewController topViewController] detailItem] == nil)) { // Return YES to indicate that we have handled the collapse by doing nothing; the secondary controller will be discarded. return YES; } else { return NO; } } 

或者,您可以使用:

  - (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController: (UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation { // Force master view to show in portrait and landscape return NO; }