UISplitViewController以纵向显示上面的详细信息的主视图

MSU*_*dog 6 objective-c master-detail uisplitviewcontroller ios

我有一个UISplitViewController嵌入在UINavigationController中,带有UINavigationItem按钮,可以纵向切换主视图的显示.我想在纵向首次加载纵向时显示详细视图上方的主视图.

我发现的任何类似的例子都显示了纵向分割屏幕的主视图和细节视图,但是当UISplitViewController首次加载时,我需要将详细视图全屏显示为包含详细视图的主视图(就像主视图一样)已被从左侧滑出).有谁知道这是怎么做到的吗?

lew*_*uez 10

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

将原始答案留给了评论和后代.


原始答案

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

作为参考,在这种情况下的解决方案是让实现的视图控制器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;

    }
}
Run Code Online (Sandbox Code Playgroud)