我是新的mac dev,xcode和IB等。我明白如何構建簡單的應用程序和基本拖動IB在下降,但我不知道IB在什麼地方做對象。當我連接IBoutlets/IBActions時,IB在幕後做了什麼?
第二個問題是如何在不使用IB的情況下編寫MVC?
我是新的mac dev,xcode和IB等。我明白如何構建簡單的應用程序和基本拖動IB在下降,但我不知道IB在什麼地方做對象。當我連接IBoutlets/IBActions時,IB在幕後做了什麼?
第二個問題是如何在不使用IB的情況下編寫MVC?
據我所知,來自IB的XIB文件是某種存檔的對象及其屬性存儲在其中的某種存檔。當您發送-initWithNibName
時,對象將被取消存檔。所以基本上,你可以 - 如果你知道如何 - 創建你自己的XIB文件,他們應該工作。請注意,加載UIViewController
而不指定XIB文件,將加載與您的類同名的XIB文件。請參閱Wikipedia article。
第二個問題:您可以創建任何使用IB以編程方式添加的對象。通常,這些是使用initWithFrame:
初始化的UIView
子類。然後你設置你需要的屬性。最後,使用addSubview
將它們添加到您的視圖中。 IBActions
基本上是Target/Action Pairs。如果您例如添加UIBarButtonItem
,則使用initWithBarButtonSystemItem:target:action:
。設置動作等同於在IB中設置IBAction
連接。
您應該可以通過編程方式創建任何用戶界面,但與使用IB時相比,這通常需要很多工作。
當您使用IBOutlet
或IBAction
連接IB中的兩個對象時,它在XIB(即XML)中創建了一些特殊標記。
當束(更新:對不起,這不是一個包,但UINib
)讀取NIB(這是編譯XIB),它看起來對這樣的標籤,他們是參考對象。之後:
對於網點,它使用KVC(鍵值編碼)來設置接收對象的相應屬性。
對於控制對象調用addTarget:action:forControlEvents:
的操作。
您可以通過創建並在代碼中設置對象建立任何複雜的iPhone應用程序,而不IB,但在大多數情況下,它只是並不明智。
深入閱讀 - Resource Programming Guide
嗨!我有2年使用iPhone應用程序的經驗。我們放棄使用接口構建器,因爲當你構建更大的解決方案時,它只會使事情複雜化。編寫代碼,你將完全控制;)你可以在這裏瞭解更多關於mvc的信息http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaDesignPatterns/CocoaDesignPatterns.html – 2011-03-16 19:45:52