在情节提要之前的过去,我能够用-application:didFinishLaunchingWithOptions:创建自己的UIWindow实例。

我有一个有特殊需要的UIWindow子类,我想与新的Xcode项目一起使用。但是我的应用程序委托方法为空,并且仍然神奇地有一个UIWindow。

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

main.m也没有提到UIWindow。

谁创建了UIWindow,如何强制它实例化我的子类?

最佳答案

如果应用程序代表的window属性是nil,则应用程序将为您创建一个窗口。

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

从App Delegate的window属性的文档中:

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

关于ios - 在现代的Xcode 5 iOS7项目中,UIWindow在哪里创建?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19137193/

10-11 23:42