将基于标签栏的iPhone项目移植到iPad

问题描述:

与其他许多开发人员一样,我创建了使用UITabBarController作为根控制器的iPhone项目,使用UINavigationController的选项卡视图从列表向下钻取到详细视图。和其他许多开发者一样,我需要将这些应用程序迁移到iPad,以便他们利用更大的屏幕(更重要的是,不要强迫用户使用仅用于iPhone的应用程序的丑陋的“双倍”可视化效果)。将基于标签栏的iPhone项目移植到iPad

苹果公司为此确切场景创建了UISplitViewController ......看似。我之所以这么说,是因为虽然我看到它在设置,iPod,iTunes等中使用,但这些应用程序在UITabBarController内部都没有使用UISplitViewController,因为它不仅被记录为不工作,而且如果这两个应用程序被强制为霰弹枪结婚。

考虑一个关于动物的假想iPhone应用程序。它有三个选项卡:“类别”(其中动物按照一些简单的方法进行分类 - 也许我们有一个包含“鸟类”和“鱼类”类别的两级层次结构),“搜索”(使用标准UITableViewUISearchDisplayController)和“故事”,这些故事是关于动物的故事(也许有一个关于青蛙的故事,另一个关于电脑书呆子马变成了独角兽)。

在“类别”和“搜索”是可以合并两个选项卡,目前还不清楚,你可以或应该与故事有关动物的合并动物列表。因此,尽管您可能想在iPad上使用UISplitViewController(将搜索集成在分割的“根”,左侧),但您如何展示“Stories”视图?你使用分段控制器吗?上还是下?拆分的“根”或“细节”视图?或者,您可以使用显示两个按钮(“类别”和“故事”)的“家庭”屏幕(如WebMD的iPad应用程序),然后显示用户点击的任何分割视图。或顶部或底部的工具栏?

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

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

还是我等待并且交叉我的手指,Apple以某种方式最终允许UISplitViewController工作而不要求它是“根”? (这可能永远不会发生!)

+0

+1的l33t独角兽... – Jasarien 2010-08-24 12:09:41

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

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

这将工作,并且不被Apple或HIG禁止。

这是我的想法呢:)

+0

有趣的想法。我没有想过把标签栏放在那里。我会放弃它。 – 2010-08-24 18:05:14