【发布时间】:2010-08-09 21:48:03
【问题描述】:
我有一个 UIViewController 来管理纵向视图和一些应用程序逻辑。但是,我需要为横向设置不同的视图。两个视图之间的小部件基本相同,但它们的布局非常不同。
我的第一次尝试是使用一个 UIViewController 和一个关联的 XIB。在 XIB 中,我有两个 UIView,一个 LandscapeView 用于横向,一个 PortraitView 用于纵向。
myController.xib
|myController(文件所有者)
|风景
|-- 我的小部件
|-- ...
|人像视图
|-- 我的小部件
|-- ...
然后 myController 通过设置 view 属性根据屏幕方向在这些视图之间切换。
在我的示例中,两个视图之间的 myWidget 基本相同,只是它们的位置发生了变化。控制器有一个指向其中一个的 IBOutlet,当方向发生变化时,这个 IBOutlet 会以编程方式更改,以指向正确的那个。
有没有更好的解决方案?
我检查了 Apple 的 AlternateViews 示例代码,但他们使用 2 UIViewController 来处理 2 个不同的视图。我想将所有事件/委托处理代码仅保留在一个控制器中,而不是在 2 个控制器之间拆分。
【问题讨论】:
标签: iphone uiview screen-orientation