2012-10-23 64 views

回答

0

這是一個通用的問題,不知道你正在嘗試做的是很難告訴你如何創建一個應用程序。順便說一下,一點(和簡單的)解釋可以是這樣的。

控制器必須實現您的應用程序,他們必須「控制」應用程序的特定功能的邏輯。 視圖必須顯示控制器要顯示給用戶的內容。

所以,如果你想創造的東西有某種邏輯(用戶簽到/數據加載和更多),你必須創建一個控制器,如果你想展現給用戶的東西,你可以創建一個視圖。

1級或2的控制器之間的差異取決於你的應用程序,則必須創建一個單一種類的邏輯使用1,否則,如果您具有不同特徵的大的應用程序然後創建n個控制器。

0

以下是比規則更多的指導原則。

您需要在您需要根據一些參數(我這樣做是基於功能),以模塊化你的代碼創建一個新的視圖控制器。例如。 DashboardViewControllerSettingsViewController

DashboardViewController裏面我們可以做很多事情。其中每個可能需要view來表示。

0

我覺得這比主觀更主觀。在我有一個項目中,需要在需要更改選項卡式導航時創建一個新的控制器,否則我最終會在定義選項卡的onInit方法中遇到if/else混亂。

在其他情況下,它可能就像問自己它是否是一個邏輯分組一樣簡單。例如。我有一個UserController管理添加/編輯/刪除用戶。我應該使用該控制器進行登錄/註銷/忘記密碼,還是應該創建一個AuthController?就我個人而言,我將它分離到一個AuthController,因爲UserController的安全性應該是管理員,而AuthController允許任何人嘗試登錄。然後,當用戶登錄時,您是否爲其配置文件執行UserController或者創建ProfileController,因爲再次存在權限差異。任何登錄用戶都可以管理他們自己的配置文件,但這並不意味着他們應該訪問我的UserController。但是,您可以將添加/編輯/刪除/配置文件/登錄/註銷/忘記密碼視圖添加到單個控制器中,只需處理每個視圖的權限即可,而且這不會是「錯誤的」。只要您保持業務邏輯在您的模型中並且離開控制器,並且儘可能地保持邏輯儘可能地遠離您的視野......那麼您已經領先於曲線並且在您不需要時重構太難了。

如果你發現自己在你的onInit中做了很多if/else,你正在初始化哪些方法正在被加載......這對我來說可能是你應該看看創建一個單獨的控制器的標誌。

相關問題