2015-02-12 95 views
2

我剛開始學習iOS編程,似乎並不瞭解這兩個術語之間的區別。容器視圖和容器視圖控制器有什麼區別?

我一直在學習容器視圖和蘋果文檔不斷引用'容器視圖控制器'。但是,我沒有看到名爲UIContainerViewController的類。故事板允許我通過拖放的方式創建一個稱爲容器視圖的特定類型的視圖,並且會創建一個標準視圖控制器,並創建該容器視圖並附帶一個嵌入Segue。

1 - 這是新自動創建的視圖控制器的容器視圖控制器,因爲它看起來像負責處理我剛剛創建的容器視圖中顯示的內容?

2 - 或者是原始視圖控制器,它包含稱爲容器視圖控制器的容器視圖?

3 - 蘋果文檔使用此語句定義容器視圖控制器 - 「容器視圖控制器包含其他視圖控制器擁有的內容。」我不太明白它的意思。有人可以向我解釋嗎?

如果有任何額外的信息需要,請留下評論,我會編輯我的問題,包括它。

回答

2

要回答我的問題有點更系統,

1 - 新創建的視圖控制器不是容器視圖控制器。它被視爲一個獨立的視圖控制器。嵌入式segue明確指出,從原始視圖控制器到新的視圖控制器。但是,容器視圖仍然是舊視圖控制器的一部分,只能指示其他視圖控制器的視圖將顯示在那裏。

2 - 是的。這是因爲原始視圖控制器包含容器作爲視圖。它最終負責選擇哪個視圖控制器的視圖顯示在容器中。因此它執行該容器的控制器的職責。

3 - 「容器視圖控制器包含其他視圖控制器擁有的內容」:現在已明確此定義。原始視圖控制器顯示實際上屬於其他視圖控制器(由其擁有)的視圖。因此,根據定義,原始視圖控制器是容器視圖控制器,將新創建的視圖控制器作爲子視圖。

0

簡而言之,容器視圖控制器允許您將視圖控制器放入其他視圖控制器中。故事板僅爲您提供了一種方便的工具,可以使視圖控制器自動放置在另一個視圖控制器中。如果你用代碼來做,你需要創建兩個視圖控制器,並刪除一個視圖的視圖,並將其放置在另一個視圖中,所有的故事板正在爲您節省麻煩。

+0

但是,當通過故事板完成時,假設我創建了一個新項目並且有一個默認視圖控制器。我創建並在默認視圖控制器中放置一個容器視圖,並且爲容器創建了一個新的視圖控制器,並且附加了一個嵌入segue,它是容器視圖控制器 - 包含容器視圖的原始默認視圖控制器,還是它新的自動創建的視圖控制器? – sosale151 2015-02-12 06:40:45

+0

新自動創建的一個,原始vc中的灰色只是一個佔位符,向您展示它將在原始vc中的位置(但我想原始vc是一種容器vc,因爲它包含子vc,一點語言在這裏崩潰) – Fonix 2015-02-12 06:46:26

相關問題