2010-05-12 61 views
0

我正在潛心研究iPad的發展,並且很快學習了很多東西,但無論在哪裏,我都有問題。在使用模板在Xcode中創建新的SplitView應用程序後,它將生成AppDelegate類,RootViewController類和DetailViewController類。除此之外,它爲MainWinow.xib和DetailView.xib創建一個.xib文件。爲什麼SplitView iPhone模板沒有RootView的nib文件?

  1. 這五個文件如何一起工作?
  2. 爲什麼有DetailView的nib文件,但不是RootView?
  3. 當我雙擊MainWindow.xib文件時,Interface Builder將在沒有「查看」窗口的情況下啓動,爲什麼?
  4. 以下是AppDelegate類中的didFinishLaunchingWithOptions方法的代碼。爲什麼我們將splitViewController添加爲子視圖?

    (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
    
    // Override point for customization after app launch  
    rootViewController.managedObjectContext = self.managedObjectContext; 
    
    // Add the split view controller's view to the window and display. 
    [window addSubview:splitViewController.view]; 
    [window makeKeyAndVisible]; 
    
    return YES; 
    

    }

感謝這麼多提前爲您的幫助!我還有很多東西需要學習,所以我很抱歉如果這個問題在任何方面都是荒謬的。我現在要繼續研究這些問題!

回答

4

MainWinow.xib是每個Cocoa touch項目創建的默認窗口。這是所有其他窗口添加到的窗口,通常在AppDelegate中。

AppDelegate,我假設你已經知道了。這是您的應用程序的基類。

SplitViewController是一個UISplitViewController,它被添加到使用IB的MainWindow.xib中,但直到didFinishLaunchingWithOptions:運行時才添加到MainView.xib中的窗口中。

默認情況下,爲了方便,SplitViewController管理兩個ViewController。通常這些是UITableView(在模板中稱爲RootViewController)和UIViewController(稱爲DetailViewController)。雖然你可以完全刪除它們,如果你想。

RootViewController只是一個UITableViewController。它被添加到IB的SplitViewController中。

DetailViewController是一個UIViewController,它也被添加到IB的MainWindow.xib中。

爲什麼有一個 DetailView的nib文件,但不是RootView?

我相信DetailView是從一個nib文件加載,以便於內存管理。但是它也可以通過編程創建。 RootView沒有一個筆尖,因爲它已經在UISplitViewController中添加和初始化了。它可以很容易地從xib文件加載。

當我雙擊該 的MainWindow.xib文件,Interface Builder中 推出沒有 「查看」 窗口,爲什麼呢?

此默認iPad模板使用名爲SplitViewController的UISplitViewController,而不是UIView調用的視圖作爲其他iPhone模板。

下面是 didFinishLaunchingWithOptions方法 的AppDelegate類中的代碼。爲什麼 我們將splitViewController添加爲 子視圖?

SplitViewController只存在於MainWindow.xib中,它不會添加到窗口(在MainWindow.xib中)。所以它被添加到這裏。如果它嵌套在SplitViewController中,則不需要在AppDelegate中添加。

這是你想要的文件read