ios - UISplitViewController - 在折叠模式下关闭/弹出代码中的详细 View Controller

标签 ios objective-c iphone uisplitviewcontroller

从 iOS8 开始我们可以使用 UISplitViewController在紧凑型和常规设备上。这很棒,因为我不必为 iPhone 和 iPad 创建两个不同的 Storyboard ,但我遇到了一个问题。

如果 Split View Controller 在 iPad 上(如果折叠属性为 NO),我可以简单地调用它以在左侧显示 MasterVC。

self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryOverlay;
[self.splitViewController.displayModeButtonItem action];

但是如果它在 iPhone 上(如果 collapsed 属性为 YES),displayMode 将被忽略,并且不执行任何操作。

我无法使用 popToRootViewControllerAnimated 弹出 DetailVC,因为 DetailVC 有它自己的导航 Controller 。

如果没有像 showDetail 提供的 View Controller 那样的任何方法,Apple 希望我们如何在代码中以折叠模式显示 MasterVC(dismiss DetailVC)?您的帮助将不胜感激。谢谢

最佳答案

在不支持“拆分”模式的设备上,如果

  1. UISplitViewController 首先出现时,您想呈现 master View Controller 而不是detail加载,然后在您的委托(delegate)类 (UISplitViewControllerDelegate) 中返回 YES splitViewController:collapseSecondaryViewController:ontoPrimaryViewController: 方法方法应该这样做:

    - (BOOL)splitViewController:(UISplitViewController *)splitViewController collapseSecondaryViewController:(UIViewController *)secondaryViewController ontoPrimaryViewController:(UIViewController *)primaryViewController {
        return YES;
    }
    
  2. 您想在特定事件(例如触摸按钮)。在这种情况下,您必须弹出 detail View Controller 导航 Controller :

    [detailViewController.navigationController.navigationController popToRootViewControllerAnimated:YES]
    

关于ios - UISplitViewController - 在折叠模式下关闭/弹出代码中的详细 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30119706/

相关文章:

ios - 从标签复制按钮(IOS)

objective-c - UIWebView 在方向改变时没有正确调整大小?

objective-c - 处理原始 png 数据

iphone - XIB 文件不出现

iphone - 检测手指何时被拖动到对象内部(iOS 触摸)

iphone - 在 GCD block 中绘制图像时卡顿

iphone - 创建一个包含许多产品的数据库

iphone - objective-c 中的通用数组

ios - 有没有办法为 iOS 设备发送特定于用户的推送通知?

html - 如何在 iOS 的 NSString 中加入 HTML 和 CSS?