2009-06-28 71 views
7

在Xcode中,工具應用程序模板,使一個項目:如何選擇在View中放置什麼代碼與ViewController?

的MainView,MainViewController

FlipsideView,FlipsideViewController

在我的應用程序,這兩種觀點對應於主UI和一個首選項屏幕。很明顯,我希望將主要用戶界面反映在主UI中並堅持到磁盤以記住設置。我知道如何做到這一點。

問題是,在查看類似應用程序的示例代碼時,我發現有些代碼將大部分活動代碼放在View中,而ViewController只剩下一個存根,但其他一些代碼則以相反的方式執行。

是否有拇指通過決定在何處放置散裝的我功能時,走的規則?

回答

2

一種方式來決定:如果您的應用程序得到一個內存不足警告,默認行爲是當前不可見的任何觀點可能被破壞。這意味着如果您有任何狀態信息無法輕易重新創建,最好不要將其保留在您的視圖中。

所以它取決於什麼你的功能大部分是這樣做的:如果它是用戶創建的維護信息,它需要在視圖控制器。

2

如果你想成爲一個MVC純粹,像視圖切換和事件處理應走在控制器和視圖中的視圖建設代碼。

但它的確定把一些應用程序邏輯的觀點,如果你是在整個應用程序一致。

+0

我同意通常只有視圖構建代碼屬於視圖類。通常,不需要構建視圖代碼,因此您可以完全擺脫視圖類。 – 2009-09-28 11:06:33

1

在StackOverflow中已經有幾個涉及模型 - 視圖 - 控制器的問題。例如,參見What goes into the "Controller" in "MVC"?

在特定情況下,偏好本身是一種模型,用於跟蹤用戶的喜好。保存和加載這些偏好是控制器的責任。顯示這些偏好並給用戶一種改變它們的方式是該觀點的責任。最後,當用戶更改這些首選項時,視圖會將其報告給控制器,以便對模型進行適當的更改。

相關問題