从 xib 获取特定的视图控制器?

Posted

技术标签:

【中文标题】从 xib 获取特定的视图控制器?【英文标题】:Get a specific view controller from a xib? 【发布时间】:2014-11-03 22:07:07 【问题描述】:

我不喜欢自动布局,所以我只使用典型的 Xcode 5 故事板。对于每种屏幕尺寸,我的 xib 中都有一个视图控制器。我怎样才能以编程方式获得大小合适的视图控制器,然后将其呈现出来?

【问题讨论】:

所以不要使用自动布局,以编程方式布局。为不同的屏幕尺寸创建一堆不同的视图控制器听起来像是你在故意让自己头疼并引入错误。 【参考方案1】:

您不应该为不同的屏幕尺寸使用单独的视图控制器。您应该使用相同的视图控制器,并根据屏幕大小加载不同的 xib。对于不同的屏幕尺寸,您可能会在 xib 中拥有相同的元素,因此单个视图控制器应该能够处理任何尺寸。

【讨论】:

【参考方案2】:

我曾经讨厌 Interface Builder 和 Autoresizing mask。我以编程方式放置了子视图。但自从我了解自动布局后,我改变了主意。如果您了解自动布局,几乎所有的布局事情都会变得非常容易。我知道有些情况需要写代码。您可以使用 xib 为复杂的布局制作自定义视图。您还可以完全以编程方式制作自定义视图。

Xib 文件不支持布局指南。我的解决方案是为每个 ViewController 制作故事板。如果您尝试以编程方式进行布局,布局指南会搞砸您。

【讨论】:

以上是关于从 xib 获取特定的视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章

从 xib 调用 viewController

来自 Xib 文件的 IBAction 以分离视图控制器

从 xib 加载视图控制器返回错误的帧

从 .xib 强制更新显示视图控制器

从 Xib 呈现模态视图控制器

如何从视图控制器推送 xib