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

时间:2015-01-08 21:16:23

标签: ios objective-c uisplitviewcontroller master-detail

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

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

2 个答案:

答案 0 :(得分:10)

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

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


原始答案

这与此重复:UISplitViewController in portrait on iPhone shows detail VC instead of master

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

    }
}

答案 1 :(得分:1)

或者您也可以使用:

 $years= [];
 foreach($yourArray as $key => $val)
 {
    $years[] = $key;
 }
 echo implode(',',$years);