我正在尝试为 iPad 做一个项目,我想在其中使用 Split View Controller 。我将为主视图 Controller 中的每个单元格设置不同的细节 View Controller 。
我在这个网站上看到了一个解决方案,如何通过 Storyboard转场来做到这一点。
他基本上将每个 UITableViewCell 链接到不同的详细 View Controller 。但我想知道这样做是“稳定”还是“好”的方式。我的意思是,它是否比以编程方式更好或更稳定?如果有的话,按照他的方法会有什么后果?
这是 link我找到的解决方案
最佳答案
这是一个棘手的问题,尽管它是一个非常常见的用例。
1) 一个想法是有一个空的 Root View Controller 作为您的细节,它处理在引擎盖下管理 segues 以快速 segue 到您真正关心的细节 View ,利用“替换”segue。这应该“技术上”修复了左上角的“后退”按钮,并且仍然允许您弹出到 root 而不是让它显示空 Controller 。不过还没有测试过这些,所以我不确定。
编辑:在 Xcode 6 中,“替换”转场由“显示详细信息”转场方便地处理,该转场专门用于 Split View Controller 上的此类 View 处理。我建议只在新项目中使用这种方法。 See sample code.
2) 另一个想法是在你的 Storyboard中有单独的导航 Controller (一个连接,其余的都搁浅)。每种详细 View 类型一个,然后点击主菜单,只需将详细 View 的导航 Controller 交换到您关心的那个。
AppDelegate 中的类似代码:
self.detailNavigationController = [self.masterNavigationController.storyboard instantiateViewControllerWithIdentifier:@"MyChosenNavigationControllerStoryboardId"];
self.splitViewController.viewControllers = @[self.splitViewController.viewControllers[0], self.detailNavigationController];
self.splitViewController.delegate = (id)self.detailNavigationController.topViewController;
第二种方法的缺点是,在内存测试中,更换新的导航 Controller 似乎不会释放旧导航 Controller 使用的所有内存。因此,它适合用于简单的应用程序,但不适用于任何疯狂复杂的应用程序。
关于objective-c - UISplitViewController - 通过 Storyboard segues 的多个详细 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21391073/