一个UIViewController或两个用于纵向/横向视图

时间:2010-08-25 12:35:33

标签: uiview uiviewcontroller orientation xib uiinterfaceorientation

我正在寻找有关视图控制器和视图的一些说明。一个视图控制器是否应该专门用于控制一个视图?

基本上,我的纵向视图将是一个4x3网格的按钮(在滚动视图中)。当我将视图旋转到横向时,我想要一个6x4网格。

显然,处理按钮点击等的功能在任何一个方向都是相同的,因此复制景观似乎需要付出很多努力。

我应该如何让视图控制器使用正确的视图xib?

我应该有两个单独的xib吗?我已经尝试了各种自动调整面具的组合,但没有太多运气。

我不确定要走的正确方法。

感谢。

2 个答案:

答案 0 :(得分:2)

我不认为上面的那个回答了joec的问题。 joec想要知道,如果有2个笔尖(即landscape.nib和portrait.nib)是坏或好的,并使用1 uiviewcontroller管理那2个笔尖中的视图。

我对mvc设计模式的理解是,ViewController确实应该管理不同的视图。但是当我看到互联网时,由于可可触摸的原因,当UIViewController在运行时切换视图属性时,人们常说它很糟糕(无论这意味着什么)。这让我很困惑。为什么viewcontroller无法切换视图?为什么我要构建一些奇怪的“主”-viewcontroller,它管理另外两个viewcontrollers,并且每个人都管理他自己的视图。在横向和纵向抽象(或者说是iphone-gui和ipad-gui抽象)的情况下,gui-business-layer中的代码(viewcontroller中的事件代码等)对于不同的视图是完全相同的。观点的风格不是。所以这应该是mvc实现的好处之一。

抱歉,但对我来说这似乎不合逻辑,苹果。

有什么想法吗?

编辑说:

似乎苹果为解决这个问题提供了一些奇怪的解决方法(讨厌我,但对我来说只不过是这样,因为我看不到在UIViewController类中管理和处理视图的真正直接的设计实现):

http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/BasicViewControllers/BasicViewControllers.html%23//apple_ref/doc/uid/TP40007457-CH101-SW26

我在以下堆栈溢出线程中找到了这个链接:

Want to use muliple nibs for different iphone interface orientations

感谢Michal那个。

答案 1 :(得分:0)

您还可以尝试更改视图和子视图大小等。 看看Madhup在此之前就已经开始了。 Changing UIView on orientation change