2013-04-22 37 views

回答

3

當您需要完整的視圖控制器時,您創建了一個UIViewController類。當您剛剛創建某種「小部件」時,您將創建一個UIView,該小部件將被添加到父視圖(例如視圖控制器的視圖)中。

將視圖控制器視爲「屏幕」。該視圖控制器代表整個屏幕。它的主視圖可以添加很多子視圖。控制器負責訪問數據並協調視圖中的事件並向視圖提供數據。

按鈕是視圖。桌子是一個視圖。圖像是一個視圖。但視圖控制器將所有這些視圖組合在一起並將它們連接在一起。

2

你的問題是非常相關的MVC模式,以及如何分開控制器和視圖部分。一個屏幕的一個視圖控制器在一般情況下是有意義的,我記得以前它是在蘋果指南中提出的,現在它已經改變了,但在大多數情況下仍然有效。

iOS視圖庫非常全面,我通常不需要創建自定義視圖,而是自定義視圖控制器。因爲在MVC模式後面的應用程序中,viewcontroller是中間人與視圖和數據(模型)進行交互的視圖,所以您的視圖不應直接連接到您的模型,這會極大地限制其功能。想想看這個通用的ios視圖庫,如果新的類不需要包含複雜的邏輯(進行計算,與其他視圖或對象進行交互),則新類應與其他控件(如uibutton,uiswitch,uitableview)一起駐留。將用戶的交互通知給控制器就足夠了。

我自定義視圖的典型用法是當我需要uiviews的組合(即許多網頁中的內容滑塊,imdb中的電影頁面中的10個評級星)並且需要不同的表示(即,在餅圖中表示一些數據或改進進度條等)但除此之外,幾乎總是我去自定義視圖控制器。

相關問題