2010-03-31 76 views
0

這應該是一個非常簡單的修復方法,但我還沒有想通過閱讀Apple文檔或其他SO問題來了解如何從編程創建接口到使用Interface Builder進行這種簡單切換。從IB加載視圖

我立足解決這個框架我的代碼: http://www.pushplay.net/blog_detail.php?id=27

唯一的區別是,這裏每個視圖編程方式創建(View01.m,View02.m)在viewDidLoad中,我反而想從導入筆尖(儘管仍然使用這個框架)爲每個視圖(每個視圖都有獨特的IB設計)。

感謝您的幫助。

回答

0

將IB視爲對象創建者而不是代碼生成器。這真的有幫助。實際上,IB執行的操作實際上是在將對象拖放到桌面/視圖/ XIB窗口時創建對象的實例。然後它允許你開始創建各種連接(用鼠標控制拖動)從一個對象到另一個對象。然後通過從包中解壓縮來實例化整個XIB。這是高度自動化的,讀取UIViewController應該會讓你感覺有些不舒服。請看:

initWithNibName:bundle: 

你基本上有兩種類型的連接:

出口:這是你如何教給另一個物體的存在一個對象。例如,你可能有一個需要訪問按鈕的控制器對象。您可以在控制器中創建一個插座(在controller.h文件/屬性區域中的XCode文本編輯或通過添加插座在IB中),然後通過控制單擊並從插座拖動到按鈕。

操作:這是如何觸發一個對象上的事件以調用另一個對象上的方法。行動將有原型:

- (IBAction) someMethod:(id) sender; 

我認爲「:(ID)發送者」是可選的,如果你的方法並不需要一個鏈接導致該事件的對象。

在IB,您可以安排對象,並設置不同的屬性,如大小,顏色,位置,目標/行動,用戶交互,文件的所有者...

這使我想到文件的所有者。這裏的大概念。它往往是加載NIB的控制器(好吧:我有一個自定義的窗口控制器,我已經使用了15年以上,但Apple有一個非常好的UIViewController,它具有各種優點),並充當IB中的代理。它實際上並沒有在IB中實例化,但它會在您分配並請求它加載NIB時發生(XIB文件是通過編譯過程變成NIB文件的XML文件)