2010-07-24 66 views
0

我正在嘗試構建我的第一個iphone應用程序。 首先,我完成了包含DataLogic類的應用程序邏輯,該類包含我所有的陣列。和另外2個類將GUI連接到LOGiC

然後我建立我的appGUI包含2個視圖。 SearchViewClass和ResultViewClass 現在我的問題是如何連接到GUI的邏輯。 DataLogic的實例在我的AppDelegate類上,我需要這兩個GUI類能夠關注這個實例,但我不知道從GUI類中的AppDelegate類中的實例需要關注誰?

我也沒有看到應用程序初始化GUI類的位置?那麼GUI類實例在哪裏?

回答

0

您使用MVC(模型 - 視圖 - 控制器)設計模式。它應該被稱爲Model-Controller-View模式,因爲控制器在模型和視圖之間進行調解。

在你的情況下,DataLogic類是你的模型。視圖由配對視圖控制器對象控制,該對象是UIViewController的實例或子類。根據應用程序的不同,將視圖控制器彼此關聯,視圖和模型有很多不同的方法。

最容易理解的是Xcode模板項目中的基於導航的應用程序。它沒有數據模型對象,但它具有在RootViewController.xib中定義的導航控制器和RootViewController類的成對視圖。 rootViewController是UIViewController的RootViewController子類的一個實例(通常,RootViewController> UITableViewController> UIViewController。)

在你的情況下,你需要向RootViewController添加一個屬性來保存對DataLogic類的引用。在應用程序代理的application:didFinishLaunching:方法中,您將初始化您的DataLogic實例,然後將RootViewController的屬性設置爲DataLogic實例。

現在RootViewController實例連接到DataLogic實例。當導航控制器將RootViewController實例推入導航堆棧時,加載RootViewController實例的視圖(分配在nib文件中)。 RootViewController實例然後從DataLogic實例獲取數據並填充視圖中的UI元素。當用戶將數據輸入UI時,控制器從UI元素中獲取數據並將其放入DataLogic實例中。

控制器將模型連接到不同的視圖。視圖不會直接與模型進行交流,反之亦然。許多不同的視圖可以使用相同的模型,只需編寫一個新的控制器將兩者連接在一起即可顯示模型的不同屬性。

+0

也許你可以幫我用代碼? 如何去認識rootviewcontroller? 我沒有RootViewController我有FirstViewController。 – Amir 2010-07-24 14:18:31

+0

我有選項卡欄應用程序,我希望從所有選項卡窗口能夠accsess到DataLogic。 我沒有找到如何使用RootViewController 也許你可以幫我用代碼?如何認識到rootviewcontroller?我沒有RootViewController我有FirstViewController。 – Amir 2010-07-24 14:24:46

+0

蘋果可以幫助你的代碼,這就是iOS參考庫的用途:)鏈接到一個很好的開始:http://developer.apple.com/iphone/library/samplecode/SimpleDrillDown/Introduction/Intro.html – iwasrobbed 2010-07-24 21:08:00