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