2010-10-11 28 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,因爲它們本質上是一樣的東西...

相關問題