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

Sha*_*rog 2 migration iphone ipad uisplitviewcontroller

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

Apple UISplitViewController为这个确切的场景创造了......看似.我说似乎是因为虽然我看到它在设置,iPod,iTunes等中使用,但这些应用程序都没有在UISplitViewController内部使用UITabBarController,因为它不仅记录为不起作用,而且如果这两个被迫进入猎枪婚姻,应用程序可能会崩溃.

考虑所有关于动物的假设iPhone应用程序.它有三个选项卡:"类别"(动物按照一些简单的方法分类 - 也许我们有一个两级层次结构,类似"鸟"和"鱼"),"搜索"(使用标准UITableView和a UISearchDisplayController)和"故事",这是关于动物的故事(也许有一个关于青蛙的故事,另一个关于计算机书呆子马变成了33t的独角兽).

虽然"类别"和"搜索"是可以合并的两个标签,但是不清楚您是否可以或应该将动物列表与动物的故事合并.因此,虽然您可能希望在iPad上使用UISplitViewController(搜索集成在分割的"根",左侧,侧面),您如何呈现"故事"视图?你使用分段控制器吗?上还是下?分裂的"根"或"细节"视图?或者您可能使用"主页"屏幕(如WebMD的iPad应用程序),它显示两个按钮("类别"和"故事"),然后显示用户点击的分割视图?或顶部或底部的工具栏?

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

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

或者,我是否等待并指责Apple以某种方式最终允许UISplitViewController工作而不要求它成为"根"?(那可能永远不会发生!)

Jas*_*ien 6

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

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

这可行,并且不会被Apple或HIG禁止.

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