iOS編程中的名稱「視圖控制器」有點令人困惑,因爲它在MVC模型中包含「視圖」和「控制器」兩個字。 「視圖控制器」實際上是Controller的另一個名稱(因爲視圖實際上大部分都是由Interface Builder完成的)。爲什麼叫做「視圖控制器」?是否因爲該控制器執行所有視圖屬性更新和事件處理?在IOS編程中,是一個「視圖控制器」實際上是一個控制器?
回答
是的,一個UIViewController
住在MVC的「Controller」層中。但它是一個控制和更新視圖的特殊控制器。視圖控制器也可以處理事件,因爲它們來自UIResponder
。
您也可以通過繼承NSObject
來創建通用控制器。例如管理帳戶的帳戶控制器等。您實際上可以在iOS SDK中找到其他控制器類,例如UIDocumentInteractionController
。
從的iOS視圖控制器編程指南:
對於iOS應用程序,視圖控制器提供 應用程序的數據和其外觀之間的重要橋樑。瞭解何時和如何使用視圖控制器對於iOS 應用程序的設計至關重要。視圖控制器是 模型 - 視圖 - 控制器設計範例中的傳統控制器對象,但它們也做得更多。 在iOS應用程序中,視圖控制器提供了許多用來管理基本應用程序行爲的邏輯 。例如,視圖控制器 管理屏幕上的內容的呈現和刪除,並且它們管理視圖的重定向以響應設備 的方向更改。
「控制器」跟隨控制器的東西。如果我正在爲椅子寫一個控制器,我會稱之爲ChairController。由於UIView正在被控制,所以將它稱爲UIViewController的權利是有道理的?視圖本身只負責顯示,但顯示內容的邏輯取決於其控制器。
爲ChairController +1 – 2012-04-18 15:21:33
UIViewController類爲所有iOS應用基本觀點的管理模式。
基本上它是您的視圖的容器,處理更多的邏輯,而不僅僅是視圖的視覺顯示。
在必要時,視圖控制器:
- 調整大小,並勾畫出其意見
- 調整的觀點
- 行爲代表的視圖的內容,當用戶與他們
相互作用
您應該看到一個「View Controller「作爲」類,其控制視圖「。
這是一個經典的Model View Controller pattern (MVC)。
一個UIViewController
具有UIView
類型的視圖,並更新此UIView
取決於你的業務對象(模型)爲每個特定的控制器。
此外,發生在您的UIView
上的事件將被髮回您的UIViewController
以正確處理它們。
- 1. iOS MVC這是一個視圖還是一個控制器?
- 2. 在單一視圖控制器中切換多個視圖控制器iOS
- 3. 如何在另一個視圖控制器中控制實例
- 4. 每個UIView都需要一個控制器,還是一個控制器可以控制多個視圖?
- 5. 可以呈現視圖控制器也是一個呈現視圖控制器?
- 6. 從另一個視圖控制器關閉視圖控制器
- 7. 從另一個視圖控制器通知視圖控制器
- 8. iOS:控制另一個視圖(控制器)的AudioPlayer
- 9. 兩個在一個視圖控制器
- 10. 轉到上一個視圖控制器
- 11. 將數據從一個視圖控制器傳遞到另一個視圖控制器; iOS <= 4 vs iOS 5
- 12. 一個視圖控制器出現在另一個視圖控制器在iOS 5和以下版本
- 13. 在一個視圖控制器中保存得分值並在另一個視圖控制器上顯示
- 14. 是否從控制器動作返回一個ActionResult實際執行該視圖?
- 15. 實現一個導航控制器到一個tabbar控制器
- 16. ios5故事板:在一個容器視圖控制器中實例化多個視圖控制器
- 17. 如何在一個鏈中從一個視圖控制器切換到另一個視圖控制器
- 18. Objective-C以編程方式在另一個視圖控制器上顯示視圖控制器
- 19. 多個控制器從一個視圖
- 20. 一個控制器兩個視圖
- 21. iPhone一個控制器,多個視圖
- 22. 在一個視圖控制器上的多個集合視圖
- 23. 多控制器在一個視圖
- 24. 在一個狀態視圖控制器
- 25. swift:在第一個視圖控制器中向上滑動顯示另一個視圖控制器
- 26. iOS強制景觀在一個視圖控制器
- 27. 在objective-c中添加一個視圖控制器作爲另一個視圖控制器的子控件
- 28. 從一個視圖控制器到另一個視圖控制器的推薦方式是什麼?
- 29. 標籤欄控制器 - 顯示一個視圖控制器不是標籤
- 30. Swift IOS:一個視圖控制器中的幾個按鈕,控制另一個視圖控制器中的圖像視圖顯示
它控制一個UIView對象。 – 2012-04-18 15:05:39