2010-03-19 33 views
1

在Interface Builder中...當我將VIEW拖到文檔窗口中...然後雙擊它時...它打開並顯示VIEW窗口。 (如預期)View或ViewController ...都是視圖?

...但是當我將VIEW CONTROLLER拖入文檔窗口中...然後雙擊它時...它也會打開並顯示VIEW窗口。 (它上面寫着「view」。)

對嗎? (或者我完全誤解了什麼?)

我以爲VIEW是繪製/拖拽東西的實際對象。沒有?

我以爲VIEW CONTROLLER只是代碼爲您的觀點。沒有?

回答

2

我沒有使用Interface Builder的經驗,但是控制器對象提供了將應用程序的數據橋接到視圖所需的自定義邏輯。在iPhone應用程序中,視圖控制器是用於呈現和管理應用程序視圖的特定類型的控制器對象。

每個ViewController都有一個與之關聯的View屬性,這是您在界面構建器中看到的屬性。

存儲在此屬性中的視圖表示視圖控制器視圖層次結構的根視圖。無論何時在屏幕上顯示視圖控制器(無論是模態還是視圖控制器界面的一部分),該視圖都會被檢索並顯示在應用程序窗口中。該屬性的默認值爲零

每個視圖控制器對象是其視圖的唯一所有者。您不能將相同的視圖對象與多個視圖控制器對象關聯。

0

蘋果希望您在開發應用程序時遵循模型 - 視圖 - 控制器系統,它非常直接且合乎邏輯。

  • 該模型是你的應用程序的核心。它處理數據庫,網絡連接和任何你需要的。它基本上是您在Xcode中創建的自定義類。
  • 視圖是你的應用程序和你的用戶之間的接口。您可以在Interface Builder中創建它們,並將它們放入NIB文件(最好每個文件一個視圖)。
  • 控制器是視圖和模型之間的粘合劑。它根據從模型(如數據庫)得到的內容定義視圖的行爲和狀態(啓用按鈕,標籤內容等)。它還根據從管理員(控制)的視圖接收的事件對模型執行操作,如更改數據庫中的記錄或更改對象中的變量。

所有這一切背後的想法是,該模型可以在最小的修改中用於每個平臺。

每個控制器應該鏈接到一個視圖和一個視圖,如表格(UITableViewController)或屏幕視圖(UIViewController)。您將所需的控制器子類化,然後將其添加到與其關聯的視圖的NIB中。這就是你如何做到的:

  1. 在NIB中,選擇文件的所有者。
  2. 在標識檢查器中,將類設置爲您在項目中創建的視圖控制器。
  3. 在您的自定義控制器類中,爲需要訪問的關聯視圖中的每個視圖(例如deleteButton)創建IBOutlet。創建併合成每個插座的屬性。
  4. 爲您想註冊的每個事件創建IBAction s(例如addButtonClicked)。
  5. 在NIB中,用鼠標右鍵從文件所有者拖動一行到需要的插座視圖,然後選擇要連接的連接。重複,直到所有的IBOutlet都正確連接。
  6. 從您要將事件註冊到文件所有者的視圖中拖動帶有輔助鼠標按鈕的行,然後選擇要創建的連接。重複,直到所有的IBAction都正確連接。
  7. 編寫控制器的代碼。
相關問題