像许多其他开发人员一样,我创建了使用 aUITabBarController
作为根控制器的 iPhone 项目,标签视图使用UINavigationController
s 从列表向下钻取到详细视图。和许多其他开发人员一样,我需要将这些应用程序迁移到 iPad 上,以便它们利用更大的屏幕(更重要的是,不要强迫用户对仅限 iPhone 的应用程序使用丑陋的“加倍”可视化)。
苹果UISplitViewController
为这个确切的场景创造了……表面上。我之所以这么说,是因为虽然我看到它在 Settings、iPod、iTunes 等中使用,但这些应用程序都没有UISplitViewController
在 a中使用UITabBarController
,因为它不仅被记录为不工作,而且如果这两者被迫结婚,应用程序可能会崩溃.
考虑一个关于动物的假设 iPhone 应用程序。它有三个选项卡:“类别”(通过一些简单的方法对动物进行分类——也许我们有一个包含“鸟类”和“鱼”等类别的两级层次结构)、“搜索”(使用标准UITableView
和UISearchDisplayController
和“故事”,这是关于动物的故事(也许有一个关于青蛙的故事,还有一个关于变成 l33t 独角兽的计算机书呆子马的故事)。
虽然“类别”和“搜索”是可以合并的两个选项卡,但尚不清楚您是否可以或应该将动物列表与有关动物的故事合并。因此,虽然您可能希望在 iPad 上使用 UISplitViewController(搜索集成在拆分的“根”左侧),但您如何呈现“故事”视图?您使用分段控制器吗?上面或者下面?拆分的“根”或“详细”视图?或者,也许您使用显示两个按钮(“类别”和“故事”)的“主”屏幕(如 WebMD 的 iPad 应用程序),然后显示用户点击的拆分视图?还是顶部或底部的工具栏?
我尝试查看其他几个应用程序,包括设置、邮件、iPod、iTunes、联系人、地图等,但没有一个应用程序在一个应用程序中呈现两种“不同”类型的信息。
这里的一般方法是什么?有没有最佳实践?iPad 编程社区采用的任何通用模式?
或者我是否等待苹果最终以某种方式允许UISplitViewController
工作而不需要它成为“根”?(这可能永远不会发生!)