2

像许多其他开发人员一样,我创建了使用 aUITabBarController作为根控制器的 iPhone 项目,标签视图使用UINavigationControllers 从列表向下钻取到详细视图。和许多其他开发人员一样,我需要将这些应用程序迁移到 iPad 上,以便它们利用更大的屏幕(更重要的是,不要强迫用户对仅限 iPhone 的应用程序使用丑陋的“加倍”可视化)。

苹果UISplitViewController为这个确切的场景创造了……表面上。我之所以这么说,是因为虽然我看到它在 Settings、iPod、iTunes 等中使用,但这些应用程序都没有UISplitViewController在 a中使用UITabBarController,因为它不仅被记录为不工作,而且如果这两者被迫结婚,应用程序可能会崩溃.

考虑一个关于动物的假设 iPhone 应用程序。它有三个选项卡:“类别”(通过一些简单的方法对动物进行分类——也许我们有一个包含“鸟类”和“鱼”等类别的两级层次结构)、“搜索”(使用标准UITableViewUISearchDisplayController和“故事”,这是关于动物的故事(也许有一个关于青蛙的故事,还有一个关于变成 l33t 独角兽的计算机书呆子马的故事)。

虽然“类别”和“搜索”是可以合并的两个选项卡,但尚不清楚您是否可以或应该将动物列表与有关动物的故事合并。因此,虽然您可能希望在 iPad 上使用 UISplitViewController(搜索集成在拆分的“根”左侧),但您如何呈现“故事”视图?您使用分段控制器吗?上面或者下面?拆分的“根”或“详细”视图?或者,也许您使用显示两个按钮(“类别”和“故事”)的“主”屏幕(如 WebMD 的 iPad 应用程序),然后显示用户点击的拆分视图?还是顶部或底部的工具栏?

我尝试查看其他几个应用程序,包括设置、邮件、iPod、iTunes、联系人、地图等,但没有一个应用程序在一个应用程序中呈现两种“不同”类型的信息。

这里的一般方法是什么?有没有最佳实践?iPad 编程社区采用的任何通用模式?

或者我是否等待苹果最终以某种方式允许UISplitViewController工作而不需要它成为“根”?(这可能永远不会发生!)

4

1 回答 1

6

您可以使用UISplitViewControllerandUITabBarController作为主视图控制器(通常是列表的左侧窗格)。

这样,您仍然可以使用选项卡和向下钻取方法,直到您阅读每个动物的详细视图(使用您的类比),然后在详细视图控制器(右侧窗格)中显示详细页面。

这会起作用,并且不会被 Apple 或 HIG 禁止。

无论如何,这是我的想法:)

于 2010-08-24T12:12:45.337 回答