ios - UISplitViewController 在纵向显示细节上方的主视图

标签 ios objective-c uisplitviewcontroller master-detail

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

我发现的任何类似示例都显示主视图和细节 View 以纵向方向拆分屏幕,但我需要细节 View 以纵向全屏显示,并且在 UISplitViewController 首次加载时主视图覆盖细节 View (就像主视图已从左侧滑出)。有人知道怎么做吗?

最佳答案

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

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


原始答案

这是一个副本:UISplitViewController in portrait on iPhone shows detail VC instead of master

作为引用,这种情况下的解决方案是让实现 UISplitViewControllerDelegate 的 View Controller 使用以下代码:

- (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;

    }
}

关于ios - UISplitViewController 在纵向显示细节上方的主视图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27849654/

相关文章:

objective-c - Ipad Split View,是否可以调整 Split View的根 Controller 的大小?

ios - MonoTouch.Dialog 与 UISplitViewController

ios - 为什么我什至没有使用 Bolts 时会收到有关 Bolts 框架和 FacebookSDK 的错误?

iphone - UITextField 不占用整个屏幕宽度

c++ - iOS 上的跨平台渲染器 : control the main loop from C++ class

ios - 如何修复 AFNetworking 3.1 中的内存泄漏?

ios - CoreData 返回空数据

objective-c - 为什么我的 NSDateFormatter 在解析时返回 nil ?

iOS TableView 加载相同的单元格

ios - iPhone 上纵向的 UISplitViewController 显示细节 VC 而不是主控