从 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)?您的帮助将不胜感激。谢谢
最佳答案
在不支持“拆分”模式的设备上,如果
当
UISplitViewController
首先出现时,您想呈现 master View Controller 而不是detail加载,然后在您的委托(delegate)类 (UISplitViewControllerDelegate
) 中返回YES
splitViewController:collapseSecondaryViewController:ontoPrimaryViewController:
方法方法应该这样做:- (BOOL)splitViewController:(UISplitViewController *)splitViewController collapseSecondaryViewController:(UIViewController *)secondaryViewController ontoPrimaryViewController:(UIViewController *)primaryViewController { return YES; }
您想在特定事件(例如触摸按钮)。在这种情况下,您必须弹出 detail View Controller 导航 Controller :
[detailViewController.navigationController.navigationController popToRootViewControllerAnimated:YES]
关于ios - UISplitViewController - 在折叠模式下关闭/弹出代码中的详细 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30119706/