【问题标题】:One UIViewController or Two for portrait / landscape views一个 UIViewController 或两个用于纵向/横向视图
【发布时间】:2011-04-03 17:01:20
【问题描述】:

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

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

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

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

我应该有两个单独的 xib 吗?我已经尝试了自动调整大小蒙版的所有组合,但运气不佳。

我不确定正确的方法。

谢谢。

【问题讨论】:

    标签: uiview uiviewcontroller orientation xib uiinterfaceorientation


    【解决方案1】:

    我不认为上面的回答了 joec 的问题。 joec 想知道,拥有 2 个 nib(即landscape.nib 和 Portrait.nib)是好是坏,并​​使用 1 个 uiviewcontroller 管理这 2 个 nib 中的视图。

    我对 mvc 设计模式的理解是,一个 ViewController 真的应该管理不同的视图。但是当我查看互联网时,由于可可触摸,人们经常说当 UIViewController 在运行时切换他的视图属性时它是坏的(不管这意味着什么)。这让我很困惑。为什么视图控制器不能切换视图?我为什么要构建一些奇怪的“主”视图控制器,它管理其他 2 个视图控制器,并且每个人都管理自己的视图。在横向和纵向抽象(或即 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 提供的那个。

    【讨论】:

      【解决方案2】:

      您还可以尝试更改视图和子视图的大小等。 看看这里 Madhup 之前解释过它。 Changing UIView on orientation change

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-09
        • 2011-11-13
        • 1970-01-01
        • 2013-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多