2009-10-22 142 views
2

我對iPhone開發相當陌生,想知道如何從單個控制器加載多個視圖。iPhone一個控制器,多個視圖

我來自c#背景,仍然試圖讓我的頭在ObjC和iPhone世界的事情如何工作。

作爲我想要實現的一個基本示例,可以說我有一個ClockController,時鐘控制器具有計算時間的基本方法。

現在我想要做的就是讓這個控制器能夠呈現任何數量的支持ClockContollers底層接口的視圖。可以說我有一個視圖將時鐘渲染爲數字輸出,另一個視圖將其呈現爲模擬顯示(我知道的基本示例)。

如何實現這一目標?

對不起,如果這是一個非常基本的問題,但我很新。

在此先感謝

回答

2

這裏是我如何MVC應用到你的例子理解:
你在屏幕上繪製有哪些是你的時鐘視圖控制器類的實例,每個支持內部意見的時鐘。這些控制器分別與時鐘模型進行交互並適當地更新其視圖。在這個類中,將設置屬性來確定時鐘是數字還是模擬。
聽起來像你的「ClockController」真的是一個模型/數據類。你可以只有一個這個模型類的實例,或者你的每個時鐘視圖控制器(如果它們有不同的時間)。

1

在我的應用程序中,我有許多單個視圖控制器的實例,然後使用不同或多個視圖來顯示UI。您可以使用addSubView將視圖及其所有子視圖添加到視圖控制器,然後使用removeFromSuperview刪除該視圖及其所有子視圖。如果視圖僅顯示信息並且被分類以處理與視圖控制器必須處理的其他視圖的差異,則此效果很好。在你的情況下,模擬時鐘視圖必須以一種方式繪製自己,而數字時鐘視圖則以另一種方式繪製。控制器只需告訴每個視圖什麼時間,視圖處理翻譯爲視覺數據。如果您的視圖以用戶的形式接受拖動模擬手來設置鬧鐘的輸入,則視圖子類需要讀取該輸入,然後轉換爲鬧鐘時間並將其傳回給視圖控制器。控制器不需要知道用戶正在與哪種類型的時鐘進行交互,但只能看到需要添加到其警報隊列的警報時間。但是,當我的視圖使用非常不同的用戶界面或出於不同的目的時,我通常更喜歡每個視圖有一個視圖控制器。基本上,我嘗試使用我的視圖作爲顯示器,並使用我的viewControllers作爲與該視圖相關的數據管理器(以及可以由相同數據支持的任何其他視圖)。

例如,我的遊戲有一個用於播放的視圖控制器,另一個用於高分表,另一個用於設置。

+0

酷!感謝解釋傢伙。這只是證實了我的想法。感謝addSubView參考,我將檢查doco的使用細節。 我認爲我的主要挑戰將會習慣於如何把事情掛在一起......再學會警惕清理那些資源;-) – 2009-10-22 23:06:33

相關問題