2010-09-16 85 views
3

我一直在研究有大约15个视图控制器的iPad应用程序。一些视图控制器是全屏幕,其他视图控制器嵌入其他视图控制器(认为分割视图控制器)。iPad导航模式

在iPhone上导航非常简单。即使您拥有大量的视图控制器,您也正在使用Apple的根视图控制器之一(选项卡或导航)。导航由根视图控制器处理,您几乎可以自由地关注视图。

在ipad上,分割视图和选项卡视图控制器并不总是有用,对于我正在处理的应用程序,他们不会削减它。我创建了单独的导航控制器对象,以便根据用户执行操作时发布的通知来处理隐藏/显示视图控制器。

其他人都有解决iPad导航问题的经验吗?

回答

3

你有没有检查出由Matt Gemmell提供的MGSplitViewController?
http://mattgemmell.com/2010/08/03/mgsplitviewcontroller-updated

我不是声称它会解决所有的导航问题,但它是一个有趣的想法,可以帮助你找到处理视图控制器的更多/更好的方法。

+0

感谢您的信息。我已经读了一会,但没有看到它。现在就做,谢谢! – logancautrell 2010-09-16 17:16:26

0

此外,请注意使用多个视图控制器来查看未填满整个屏幕的视图。苹果公司的文件明确规定,你不应该使用局部屏幕视图的视图控制器:

注意:你不应该使用视图控制器来管理意见只能填充其窗口,也就是说,只有部分的一部分由应用程序内容矩形定义的区域。如果您希望有一个由多个较小视图组成的界面,请将它们全部嵌入到单个根视图中,并使用视图控制器来管理该视图。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

尽管当你有多个视图控制器管理不同的子视图的一些事情可能会奏效,其他的事情将无法正常工作。例如,只有一个视图控制器会在设备旋转时被通知。同样,并非所有的视图控制器都会发送你可能期望的'viewWillAppear''viewDidUnload'等消息。

+1

该文档是在iPad之前编写的。让你的所有屏幕分开在iPad上的视图控制器是不现实的。在任何非平凡的应用程序中,单个视图控制器处理所有视图太简单了。虽然你必须手动处理一些像viewWillAppear这样的方法,但是内存管理相关的方法*仍然可以正确调用。 – logancautrell 2010-09-24 22:58:00

1

使用iOS 5 Apple已经添加了容器视图控制器的概念。这使得添加和删除儿童变得容易,允许他们的旋转/出现/消失的方法被自动调用。很酷的东西!