2013-10-02 48 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方法并使用它来创建并返回您的自定义窗口。

相关问题