UIWindow在现代Xcode 5 iOS7项目中的位置在哪里?

时间:2013-10-02 12:44:11

标签: ios xcode uikit storyboard xcode-storyboard

在故事板之前的过去,我能够在-application:didFinishLaunchingWithOptions:中创建自己的UIWindow实例。

我有一个具有特殊需求的UIWindow子类,我希望将其与新的Xcode项目一起使用。但我的app委托方法是空的,仍然有神奇的UIWindow。

有一个Main.storyboard文件。但在里面看,我只看到一个UIViewController。没有对UIWindow的引用。

main.m也没有提到UIWindow。

谁创建了UIWindow,我怎样才能强制它实例化我的子类呢?

1 个答案:

答案 0 :(得分:2)

如果App Delegate的窗口属性为nil,则该应用会为您创建一个窗口。

要创建自定义窗口,请在App Delegate中实现window getter。

来自App Delegate的window属性的文档:

  

如果您的应用的Info.plist文件包含UIMainStoryboardFile键,则需要实现此属性。幸运的是,Xcode项目模板通常会自动为应用程序委托包含属性的合成声明。此合成属性的默认值为nil,这会导致应用程序创建通用UIWindow对象并将其分配给属性。如果要为应用程序提供自定义窗口,则必须实现此属性的getter方法,并使用它创建并返回自定义窗口。