2012-04-18 24 views
1

iOS編程中的名稱「視圖控制器」有點令人困惑,因爲它在MVC模型中包含「視圖」和「控制器」兩個字。 「視圖控制器」實際上是Controller的另一個名稱(因爲視圖實際上大部分都是由Interface Builder完成的)。爲什麼叫做「視圖控制器」?是否因爲該控制器執行所有視圖屬性更新和事件處理?在IOS編程中,是一個「視圖控制器」實際上是一個控制器?

+0

它控制一個UIView對象。 – 2012-04-18 15:05:39

回答

3

是的,一個UIViewController住在MVC的「Controller」層中。但它是一個控制和更新視圖的特殊控制器。視圖控制器也可以處理事件,因爲它們來自UIResponder

您也可以通過繼承NSObject來創建通用控制器。例如管理帳戶的帳戶控制器等。您實際上可以在iOS SDK中找到其他控制器類,例如UIDocumentInteractionController

的iOS視圖控制器編程指南

對於iOS應用程序,視圖控制器提供 應用程序的數據和其外觀之間的重要橋樑。瞭解何時和如何使用視圖控制器對於iOS 應用程序的設計至關重要。視圖控制器是 模型 - 視圖 - 控制器設計範例中的傳統控制器對象,但它們也做得更多。 在iOS應用程序中,視圖控制器提供了許多用來管理基本應用程序行爲的邏輯 。例如,視圖控制器 管理屏幕上的內容的呈現和刪除,並且它們管理視圖的重定向以響應設備 的方向更改。

2

「控制器」跟隨控制器的東西。如果我正在爲椅子寫一個控制器,我會稱之爲ChairController。由於UIView正在被控制,所以將它稱爲UIViewController的權利是有道理的?視圖本身只負責顯示,但顯示內容的邏輯取決於其控制器。

+0

爲ChairController +1 – 2012-04-18 15:21:33

1

您應該看到一個「View Controller「作爲」類,其控制視圖「。

這是一個經典的Model View Controller pattern (MVC)

一個UIViewController具有UIView類型的視圖,並更新此UIView取決於你的業務對象(模型)爲每個特定的控制器。

此外,發生在您的UIView上的事件將被髮回您的UIViewController以正確處理它們。

相關問題