据我所知,每个视图都有自己的控制器类。我一般知道xib文件是应用程序视图/子视图。我的问题是,MainWindow.xib有自己的控制器吗?如果有,在哪里可以找到?
发布于 2011-07-12 00:48:09
您说得对,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。
发布于 2011-07-12 00:17:16
我不认为它有自己的控制器。它主要是主窗口,当应用程序出现时弹出的东西。我们添加控制器或视图控制器供用户使用。App委托在某种程度上是控制器,但不完全是。我们将applicationDidFinishLaunchingWithOptions重写到任何控制器等,所以appdelegate可以被认为是mainwindow.xib的控制器,尽管它不是。
https://stackoverflow.com/questions/6653101
复制相似问题