确保在applicationDidFinishLaunching之前初始化nib中的对象

时间:2010-06-29 20:21:22

标签: objective-c cocoa-touch uiviewcontroller nib

感谢您查看我的问题。

我的应用程序中有两个视图控制器,每个都有自己的nib文件。 controller1的实例存储在MainWindow.xib中,控制器2的实例存储在Controller1.xib中。

有没有办法确保在app delegate发送applicationDiDFinishLaunching之前初始化控制器2?

实际设置与许多其他视图控制器相比要复杂得多,所以我真的不想把所有东西放到MainWindow.xib中。加上这样做会降低可重用性。

再次感谢!

2 个答案:

答案 0 :(得分:0)

  

有没有办法确保在发送应用代表applicationDiDFinishLaunching之前初始化控制器2?

没有。好吧,也许是的,但不是视觉控制器应该如何工作。视图控制器在那里推迟加载笔尖,这是一个相当昂贵的操作,直到视图真的非常非常必要。因此,如果在调用controller2时需要applicationDidFinishLaunching,则不应将其放在由另一个视图控制器控制的nib内。

如果我是你,我会停止在nib文件中实例化视图控制器,并在applicationDidFinishLaunching:内创建它们,如

-(void)applicationDidFinishLaunching:(UIApplication *)application
{
     ....
     self.controller2=[[Controller2 alloc] init... ];
     ....
}

答案 1 :(得分:0)

我相信applicationDidFinishLaunching是您可以控制代码的绝对入口点。这可能是最早装载任何东西的地方。