2013-10-02 145 views
2

在故事板之前的舊版本中,我能夠在-application:didFinishLaunchingWithOptions:中創建自己的UIWindow實例。在現代Xcode 5 iOS7項目中創建的UIWindow在哪裏?

我有一個特殊需求的UIWindow子類,我想用一個新的Xcode項目。但我的應用程序委託方法是空的,仍然有神奇的UIWindow。

有一個Main.storyboard文件。但是在裏面看,我只看到一個UIViewController。沒有引用一個UIWindow。

main.m也沒有提及UIWindow。

誰創建了UIWindow,我該如何強制它實例化我的子類呢?

回答

2

如果App Delegate的窗口屬性爲nil,該應用程序會爲您創建一個窗口。

要製作自定義窗口,請在App Delegate中實施window吸氣劑。

從文檔的應用程序委託的window屬性:如果您的應用程序的Info.plist文件包含UIMainStoryboardFile關鍵是需要

這個屬性的實現。幸運的是,Xcode項目模板通常自動爲應用程序委託包含屬性的合成聲明。此綜合屬性的默認值爲零,這會導致應用程序創建一個通用的UIWindow對象並將其分配給該屬性。如果您想爲應用程序提供自定義窗口,則必須實現此屬性的getter方法並使用它來創建並返回您的自定義窗口。

相關問題