2010-06-29 88 views
1

並感謝您看看我的問題。確保在筆尖之前對象初始化applicationDidFinishLoching

我在我的應用程序中有兩個視圖控制器,每個都有自己的nib文件。控制器1的實例存儲在MainWindow.xib中,控制器2的實例存儲在Controller1.xib中。

有沒有辦法確保控制器2在應用程序委託發送之前初始化applicationDiDFinishLaunching?

實際的設置對許多其他視圖控制器來說要複雜得多,所以我真的不想把所有東西都放到MainWindow.xib中。加上這樣做會降低可重用性。

再次感謝!

回答

0

有沒有辦法確保控制器2在應用程序委託發送之前被初始化applicationDiDFinishLaunching

不,好吧,也許是的,但這不是視圖控制器應該如何工作。視圖控制器在那裏延遲加載筆尖,這是一個相當昂貴的操作,直到視圖真的非常必要。所以,如果在調用applicationDidFinishLaunching時需要controller2,則不應將其放入由另一個視圖控制器控制的筆尖內。

如果我是你,我會停止在筆尖文件實例化視圖控制器在所有的,只是創建它們的內部applicationDidFinishLaunching:,如

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

我相信applicationDidFinishLaunching是絕對的切入點在其中控制代碼。這是可以加載任何東西的最早的地方。