2011-07-11 35 views
0

我的理解是,每個視圖都有它自己的控制器類。我通常知道xib文件是應用程序視圖/子視圖。我的問題是MainWindow.xib是否有自己的控制器,如果有,它可以在哪裏找到?MainWindow .xib - iPhone開發

回答

1

你是對的,一個xib文件可以允許將視圖關聯到它的視圖控制器。

現在,MainWindow.xib包含您的應用程序的主要UIWindow(至少)。 UIWindow不是UIView,也不需要UIViewController

在另一方面,你可以創建你的MainWindow.xib裏面喜歡的對象,所以你也可以有一個UIView在那裏,然後您可以添加到UIWindow實例及其相應UIViewController

如果您想了解其他xib,他們會發現它們定義了UIView,另外還指定了文件所有者類型,通常爲UIViewController,並通過加載xib來實例化。

從這個意義上講,MainWindow.xib雖然不需要UIViewController,但仍然需要一個文件所有者,而這是單一的UIApplication。由於您無法修改或從UIApplication派生類,因此與UIWindow實例進行交互的方式是通過UIApplication的代表進行的。

請記住,MainWindow.xib扮演着特殊的角色,因爲它也在info.plist文件中指定。你可以不用一個(通過從info.plist中刪除相應的條目),只需從main.c調用UIApplicationMain時聲明你的應用程序委託。在這種情況下,應用程序委託也不會通過xib機制實例化UIWindow;您將需要從您的應用程序代理的applicationDidFinishLaunching實例化UIWindow

0

我不認爲它有自己的控制器。它基本上是主應用程序出現時彈出的主窗口。我們添加控制器或視圖控制器供用戶使用。應用程序委託是一種控制器,但不完全。我們重寫applicationDidFinishLaunchingWithOptions到任何控制器等,所以appdelegate可以被認爲是mainwindow.xib的控制器,儘管它沒有。