iOS永远不会到达DidApplicationFinishLaunching ..永远不会显示视图

时间:2011-06-17 20:56:42

标签: iphone interface-builder xib

我很困惑,我有一个针对Iphone的iOS应用程序

MainWindow.xib文件的窗口和VIEW设置为从另一个XIB文件加载

MainWindow.xib中的WINDOW根本没有连接插座。

这一切都在以前工作,然后突然停止,所以我假设XIB中的某些内容现已关闭(引用,代理,某些内容没有正确链接)。

View将其App Delegate连接到viewController类本身。

当应用程序现在启动时,它只显示一个空的WINDOW,并且我的AppDelegate类NEVER中的DidApplicationFinishLaunching被调用。

我假设我在Window和app delegate或views的关联中有一些缺失/损坏。

View是myViewController的一个实例,AppDelegate设置为myAppDelegate

然而,无论我如何与代表商店等联系起来,它只是坐在那里,一个空白的窗口嘲笑我。

我知道我搞砸了一些东西,因为这一切都非常好用,直到InterfaceBuilder决定点什么。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

  

View将其App Delegate连接到viewController类本身。

错误这句话并不意味着什么。视图没有AppDelegate。

我们通常称之为“AppDelegate”的对象是我们设置为UIApplication单例对象的委托的对象。

当你的应用程序启动时,你的AppDelegate的application:didFinishLaunchingWithOptions:方法不会被魔术调用:它被调用,因为这个对象(类型为YourAppName_AppDelegate)被设置为你的UIApplication对象的委托;通过将UIApplication实例的“委托”IBOutlet连接到YourAppName_AppDelegate对象,可以在MainWindow XIB文件中完成此连接。

我想你的情况是,app singleton的委托出口与实现didFinishLaunching的AppDelegate对象之间的连接已断开,需要重做。

请注意,在MainWindow.XIB文件的特殊情况下,由于此XIB是在应用程序启动时自动打开的XIB(除非您在Info.plist文件中更改了此内容),因此文件的所有者XIB也是UIApplication单例,因此您可以连接文件的所有者委托IBOutlet或XIB中的UIApplication对象委托,因为这是相同的单例对象。