MainWindow .xib - iPhone开发

时间:2011-07-11 16:07:44

标签: iphone objective-c xcode ios4

我的理解是每个视图都有自己的控制器类。我一般都知道xib文件是应用程序视图/子视图。我的问题是MainWindow.xib是否有自己的控制器,如果有,它可以在哪里找到?

2 个答案:

答案 0 :(得分: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时简单地声明你的应用程序委托。在这种情况下,也不是应用程序委托,UIWindow也不会通过xib机制实例化;您需要从应用程序代理UIWindow实例化applicationDidFinishLaunching

答案 1 :(得分:0)

我认为它没有自己的控制器。它是主窗口,基本上是应用程序出现时弹出的东西。我们添加控制器或视图控制器供用户使用。 App委托是一种控制器,但不完全是。我们将applicationDidFinishLaunchingWithOptions覆盖到任何控制器等,因此appdelegate可以被认为是mainwindow.xib的控制器,尽管它不是。