当我启动一个单视图应用程序而不是以rootViewController
编程方式从分配AppDelelgate
,尝试使用“主界面”选项分配一个xib
作为我的主界面文件时,SIGABRT
当我运行它时会向程序发送一个信号。为什么会这样?“主界面”选项的目的是什么?
问问题
4662 次
2 回答
4
我发现了如何做到这一点。在我了解了应用程序如何加载的整个过程之后,这一点非常明显。所以我想我会回答我自己的问题。
关键是初始化窗口并UIApplication
从 xib 本身设置它及其委托。
- 第 1 步:创建一个带有
UIWindow
对象的 xib。将 xib 的文件所有者设为UIApplication
. - 第 2 步:在 xib 中创建一个
AppDelegate
对象,并将文件所有者的delegate
出口连接到该对象。 - 第 3 步:为类中的窗口创建一个插座
AppDelegate
。 - 第 4 步:在构建设置中选择MainInterface选项作为您创建的 xib。
- 第 5 步:注释掉
applicationDidFinishLaunchingWithOptions:
方法中的代码。
如果您运行该程序,它将在模拟器中显示该窗口,但您会收到一条警告,指出应用程序应该rootViewController
在应用程序启动结束时出现。
- 第 6 步:所以
applicationDidFinishLaunchingWithOptions:
我们可以在内部实例化 aUIViewController
并将窗口出口 rootViewController 分配为此视图控制器。
于 2013-03-14T06:48:10.657 回答
1
您可以将 .xib 文件注册为主界面,但我相信随后假定文件的所有者是 UIApplication 对象。这是一种构建应用程序的方式,在早期版本的 Xcode 中很常见。如果您找到包含 MainWindow.xib 文件的项目,则它们很可能使用该样式。
于 2012-07-07T16:49:23.837 回答