我已閱讀Apple的「您的第一個iOS應用程序」指南,所有內容對我來說似乎都很清楚。但是,當我嘗試瞭解XCode中提供的基於View的iOS應用程序模板的工作原理時,我遇到了一些有趣的難題。基於視圖的iOS應用程序模板
據我所知,應用程序從主要的nib文件名(通常是MainWindow.xib)形成* -Info.plist文件。我不明白的是,默認情況下,XCode如何知道哪個nib文件與使用此基於View的應用程序模板創建的控制器相關聯。在指南中,你開始與基於Windows的應用程序,你「必須寫」是這樣的:
MyViewController *aViewController = [[MyViewController alloc]
initWithNibName:@"MyViewController" bundle:[NSBundle mainBundle]];
[self setMyViewController:aViewController];
這是非常合情合理的。但是,事實證明,在基於視圖的iOS應用程序模板中沒有這樣的事情,並且這個nib規範並不是首先需要的,只要您創建了UIViewController子類並使用選項「With XIB for user interface 「檢查。我的問題是,XCode是如何知道哪個nib與這個控制器相關聯的,也就是說它是將這個連接存儲在一些文件中,還是通過某種約定(可能與控制器和nib文件同名)?此外,從'MyViewBasedAppController''的字幕加載來自哪裏MainWindow.xib中的控制器的接口生成器的視圖?當我手動添加控制器時,肯定不會出現這種情況,所以我很好奇XCode在我背後做了什麼魔術,當時我認爲我只是選擇了一個簡單的代碼模板。
整個過程的優秀解釋,豎起大拇指。 – 2010-11-15 03:29:19
嗯,你完全正確地從他們的名字實例化類,但那不是我所問的。你在這裏說的:「這樣做會打開另一個xib並繼續執行相同的步驟。」似乎沒有回答我的問題:如何解決NibTestViewController控制器的nib文件是非常NibTestViewController.xib文件?換言之,如何知道在這種情況下甚至應該有用於加載的nib文件(因爲我們可以清楚地實例化沒有nib文件的控制器)? – itim 2010-11-15 06:56:14
「...查看其屬性(檢查器中的第一個選項卡,帶有滑塊圖形),您還會看到單獨的nib文件被指定爲包含其主要細節。」 - 對不起,我真的很累讀這個。這個答案實際上是指甲,非常感謝你! – itim 2010-11-15 09:21:56