4

当我启动一个单视图应用程序而不是以rootViewController编程方式从分配AppDelelgate,尝试使用“主界面”选项分配一个xib作为我的主界面文件时,SIGABRT当我运行它时会向程序发送一个信号。为什么会这样?“主界面”选项的目的是什么?

4

2 回答 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 回答