什麼時候應該在同一視圖控制器中創建新視圖,以及何時應該創建新的視圖控制器?當我應該在相同的視圖控制器內使用多個視圖?
回答
這是一個通用的問題,不知道你正在嘗試做的是很難告訴你如何創建一個應用程序。順便說一下,一點(和簡單的)解釋可以是這樣的。
控制器必須實現您的應用程序,他們必須「控制」應用程序的特定功能的邏輯。 視圖必須顯示控制器要顯示給用戶的內容。
所以,如果你想創造的東西有某種邏輯(用戶簽到/數據加載和更多),你必須創建一個控制器,如果你想展現給用戶的東西,你可以創建一個視圖。
1級或2的控制器之間的差異取決於你的應用程序,則必須創建一個單一種類的邏輯使用1,否則,如果您具有不同特徵的大的應用程序然後創建n個控制器。
以下是比規則更多的指導原則。
您需要在您需要根據一些參數(我這樣做是基於功能),以模塊化你的代碼創建一個新的視圖控制器。例如。 DashboardViewController
,SettingsViewController
等
在DashboardViewController
裏面我們可以做很多事情。其中每個可能需要view
來表示。
我覺得這比主觀更主觀。在我有一個項目中,需要在需要更改選項卡式導航時創建一個新的控制器,否則我最終會在定義選項卡的onInit方法中遇到if/else混亂。
在其他情況下,它可能就像問自己它是否是一個邏輯分組一樣簡單。例如。我有一個UserController管理添加/編輯/刪除用戶。我應該使用該控制器進行登錄/註銷/忘記密碼,還是應該創建一個AuthController?就我個人而言,我將它分離到一個AuthController,因爲UserController的安全性應該是管理員,而AuthController允許任何人嘗試登錄。然後,當用戶登錄時,您是否爲其配置文件執行UserController或者創建ProfileController,因爲再次存在權限差異。任何登錄用戶都可以管理他們自己的配置文件,但這並不意味着他們應該訪問我的UserController。但是,您可以將添加/編輯/刪除/配置文件/登錄/註銷/忘記密碼視圖添加到單個控制器中,只需處理每個視圖的權限即可,而且這不會是「錯誤的」。只要您保持業務邏輯在您的模型中並且離開控制器,並且儘可能地保持邏輯儘可能地遠離您的視野......那麼您已經領先於曲線並且在您不需要時重構太難了。
如果你發現自己在你的onInit中做了很多if/else,你正在初始化哪些方法正在被加載......這對我來說可能是你應該看看創建一個單獨的控制器的標誌。
- 1. 視圖控制器應該在視圖中應該是什麼?
- 2. 我應該儘可能多地使用視圖/視圖控制器嗎?
- 3. 如何讓多個視圖使用相同的控制器類?
- 4. 對多個視圖控制器使用相同的NIB
- 5. 在不同視圖控制器中的相同視圖?
- 6. 在MVC中使用相同的控制器多視圖3
- 7. 在2個視圖控制器中使用相同的UIWebview作爲子視圖
- 8. 我應該使用哪個視圖控制器?
- 9. 我應該爲我的視圖控制器使用singelton嗎?
- 10. 在視圖控制器內創建多個子視圖
- 11. 從不同的視圖控制器打開相同的視圖
- 12. 我應該在遊戲中使用多少個視圖控制器?
- 13. UI路由器多個視圖共享相同的控制器
- 14. 在當前視圖控制器下加載視圖控制器
- 15. 許多控制器的一個視圖(主視圖)(子視圖)
- 16. 在視圖控制器內添加多個導航控制器?
- 17. 多視圖控制器內的可用視圖
- 18. 參考,以查看屬性保持視圖控制器當我米使用視圖控制器的視圖
- 19. 相同視圖控制器的UI的多個變體
- 20. iOS,iPad-具有相同主控和詳細視圖控制器的多個分割視圖控制器
- 21. 有多少視圖控制器太多視圖控制器?
- 22. 對兩個視圖控制器使用相同的NSLock
- 23. 使用視圖控制器子視圖
- 24. 用於iPhone上單個視圖的多個視圖控制器
- 25. 在一個視圖控制器上的多個集合視圖
- 26. AngularJS使用相同的控制器在單一狀態下的多個視圖
- 27. ZF2 - 控制器中多個操作的相同視圖文件
- 28. Swift將多個類添加到相同的視圖控制器
- 29. 多個資源相同的控制器/視圖
- 30. 使用多個控制器在同一視圖與離子