2011-02-26 17 views
1

navigationController如何獲取它在此代碼中設置的topViewController(來自CoreDataBooks示例)?我假定在NIB文件中有一些映射,但是我無法通過在Interface Builder中查看此代碼和NIB文件來證明自己在這裏工作的方式。navigationController如何獲取它在此代碼中設置的topViewController(來自CoreDataBooks示例)?

該示例的源代碼可用here

是否有人能夠解釋出這個應用程序中設置的topViewController,比如在CoreDataBooksAppDelegate.m「applicationDidFinishLaunching」方法中,RootViewController的一個實例是否被獲取?我猜解釋可能圍繞Interface Builder中&護理文件的處理方式圍繞...

- (void)applicationDidFinishLaunching:(UIApplication *)application { 

    RootViewController *rootViewController = (RootViewController *)[navigationController topViewController]; // <=== HOW DOES THIS WORK 
    rootViewController.managedObjectContext = self.managedObjectContext; 

    // Configure and show the window 
    [window addSubview:[navigationController view]]; 
    [window makeKeyAndVisible]; 
} 

回答

3

似乎在MainView.xib文件進行設置。導航控制器裏面有一個設置爲類RootViewController的視圖控制器。

+0

所以NIB設置意味着IOS會創建這些項目的實例,然後再傳遞給「applicationDidFinishLaunching」? – Greg

+0

它「加載」意味着當您嘗試訪問某個項目時,它會從筆尖加載它。 –

相關問題