为什么UIViewControllers有xib文件而UIViews没有?

时间:2010-10-11 00:48:49

标签: xcode model-view-controller uiview uiviewcontroller

当我在xcode中创建一个新的UIViewController时,它提供了一个关联接口的nib。但是,当我创建一个UIView时,它没有。如果我对MVC的理解是正确的,那么视图应该是包含界面元素(即nib)的部分,而视图控制器是将功能挂钩到它们控制的视图的部分。

我相信我能够以任何方式让它一起工作,所以这更像是一个探索性的问题。

这似乎是我缺少对如何使用这两部分的一些基本理解的情况。我错过了什么?

3 个答案:

答案 0 :(得分:0)

因为UIView通常不会以这种方式使用。 但是How do I associate a nib (.xib) file with a UIView?

答案 1 :(得分:0)

我最终得到的答案满足了我的兴趣大致是这样的:

  

视图控制器的工作是管理视图层次结构。 Interface Builder是用于创建视图层次结构的出色工具。 Xcode提供在创建新视图控制器时创建.xib,因为您可能希望从.xib加载控制器的视图。

.xib文件不一定意味着保存进入视图的每个UIView(或子类),只是在视图生命周期内不会更改的视图的大致轮廓。其他UIViews更容易以编程方式创建,因为它们经常更改。

答案 2 :(得分:0)

我有类似的困惑。基本上(根据MVC),View包含在Controller中。在iPhone中,这意味着UIViewController有一个名为'view'的属性,它是一个UIView实例。

XIB文件(经常不提及)是一个序列化的UIView实例。它大致是一种XML子格式,代表UIView及其所有后续视图。因此,当您创建UIViewController时,UIView将以XIB的形式创建并绑定到该控制器。

因此,新的UIView没有XIB,因为它们本质上是相同的......