我尝试基于 Xcode 6 中的 UISplitViewController 模板为通用应用程序(使用 Storyboard 和 CoreData/NSFetchedResultsController)构建一个简单的应用程序。这个应用程序还应该为 MasterViewController 提供一个搜索栏。不幸的是,Xcode 6 没有为 UISearchBar/UISearchController 组合提供任何 InterfaceBuilder 元素(只有已弃用的 UISearchBar/UISearchDisplayController)。
在 iOS Developer 库中,Apple 提供了“使用 UISearchController 进行表格搜索”的示例,但这不是基于 UISplitViewController 并且仅支持 iPhone。
我的问题是,在任何情况下我都无法在正确的 ViewController 上显示详细视图。我试图将 Apple 示例项目中的方法转移到 UISplitViewController 模板。在此,我们鼓励将搜索结果显示在单独的 UITableViewController 子类(ResultsTableViewController)中,并将其用作 UISearchController 的 searchResultsController。我无法在 InterfaceBuilder 中为此设置创建场景,因此我不得不在代码中手动添加这些场景。
当我单击 ResultsTableViewController 的表格单元格时,问题就开始了。这个 vc 不是 InterfaceBuilde 场景的一部分,我不知道如何正确地将它添加到 SplitViewController 设置中。最大的问题是 iPhone 6 Plus 和 UISplitViewController 的怪异行为。在纵向模式下,它的行为类似于 iPhone,并且似乎没有 SplitViewController,只使用我将 DetailViewController 推送到的 NavigationController。在横向模式下,它的行为就像带有 SplitViewController 的 iPad,我必须获得 SplitViewController 的第二个 ViewControllerchildControllers
并将 DetailViewController 推到这个上。
现在它发生了,当我以纵向模式开始并切换到 DetailViewController 全部消失的横向模式时,显示 DetailVC 应该在的灰色空间。看起来,当进入纵向模式时,DetailViewController 会从 SplitViewController 中踢出(或者 SplitViewController 会被踢出,有利于 iPhone 的 NavigationController 设置)。当切换回横向时,SplitViewController 会再次初始化,但没有正确初始化 DetailViewController。
是否有关于如何在通用 UISplitViewController 上正确实现搜索功能的模板或建议?
干杯比约恩