2011-09-22 63 views

回答

1

你應該在Apple的文檔中查找Model-View-Controller模式,因爲它對於使用Cocoa非常重要。基本上,Model-View-Controller中的想法是設計你的類結構的模式。一般來說,該模型是應用程序數據應該保存的地方。該視圖控制應用程序的外觀,控制器是兩個組裝的地方。 (理想情況下,視圖和模型類別甚至不需要知道對方的存在)。

因此,UITableView和UITableViewController是兩個不同的類,有兩個不同的目的。 UITableView控制數據的外觀,UITableViewController「控制」視圖(通常通過傳遞正確的數據來顯示和佈局)。由於這種模式在Cocoa編程中一次又一次地出現,你應該花一些時間去熟悉它。

+0

因此,如果我在界面生成器中刪除表視圖而不是表視圖控制器,那麼我無法控制表視圖上的數據?謝謝 –

+0

您可以通過實施TableView DataSource來控制數據。通常,管理在視圖控制器中執行。你可以使用一個沒有UITableViewController的UITableView,你只需要在某處實現數據源(可能在表視圖所屬的任何視圖控制器上)。 實際上,UITableViewController大多是一個便利的類,當整個屏幕是一個表時,它是有用的。我個人幾乎從不使用它。我只是添加一個表視圖到一個UIViewController子類並實現數據源。 –

0

這是兩個不同的東西,它們不能代替其他。

iOS遵循MVC設計模式,即模型 - 視圖 - 控制器。你提到的兩個課程是整體難題的兩個部分。

該視圖是顯示在屏幕上的內容。這是它的責任。所以,TableView負責告訴手機在屏幕上呈現的內容。

該視圖還伴隨着控制器。控制器決定什麼時候發生什麼(用戶交互以及隨時可能發生的其他事件)。因此,TableViewController負責使表執行某些操作(例如,告訴TableView使用什麼數據來顯示在屏幕上)。

所以總結起來,他們是完全不同的,但是他們在你的應用程序非常緊密合作,(你幾乎總是有1級控制器爲每個視圖。

0

嗯,簡單的答案是,一個是視圖,一個是控制器與您的數據(模型)結合這一點,你有MVC的所有部分。(模型 - 視圖 - 控制器)

認爲它這樣,的UITableViewController 控制的UITableView的。他們是互補的,他們需要彼此的工作。

相關問題