2010-10-11 27 views
3

当我在xcode中创建一个新的UIViewController时,它提供了使我成为界面的关联笔尖。但是,当我创建一个UIView时,它不会。如果我对MVC的理解是正确的,那么视图应该是包含界面元素(即笔尖)的部分,而视图控制器是将功能挂钩到他们控制的视图的部分。为什么UIViewControllers有xib文件,而UIViews没有?

我相信我可以通过任何方式使它一起工作,所以这更像是一个探索性问题。

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

回答

0

答案我终于得到了满足我的利益是大致是这样的:

视图控制器的工作是管理视图层次。 Interface Builder是创建视图层次结构的绝佳工具。 Xcode提供了在创建新视图控制器时创建.xib,因为您希望从.xib加载控制器视图的机会很高。

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

0

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

+0

不,这是我的问题。 *为什么*不是这样使用的? – Nick 2010-10-11 23:53:58

+0

因为UIViewController已经完成了这个目的。 – Mantar 2010-10-12 09:36:01

+0

你到达那里。详细说明这两个目标的目的,以及为什么我对其目的的假设是错误的。 – Nick 2010-10-12 21:58:10

0

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

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

一个新的UIView因此没有XIB,因为它们本质上是一样的东西...

相关问题