我觉得我应该知道这一点,但我没有,而且总是让我困惑。
在浏览示例代码和教程时,我有时会看到具有
的AppDelegates @property UIWindow* window
,
然后是@synthesized
,然后是
[window setRootViewController:controllerToBeSet]
[window makeKeyAndVisible]
其他应用在代理中的任何位置都不会有一行代码。
我知道故事板中的友好箭头表示根视图控制器。 那么打包AppDelegates只是为了基于nib的项目吗?
我需要清楚说明使用didFinishLaunchingWithOptions
委托方法的规范以及最初设置视图的方式。
答案 0 :(得分:6)
您的理解基本上是正确的。以下引用来自Apple的文档(在“在您的应用程序中使用视图控制器”):
主故事板初始化您应用的用户界面
主要故事板在应用程序的信息属性列表中定义 文件。如果在这个文件中声明了一个主故事板,那么当你的 应用程序启动后,iOS执行以下步骤:
它为您实例化一个窗口。它加载主要故事板和 实例化其初始视图控制器。它分配新视图 控制器到窗口的rootViewController属性,然后使 屏幕上可以看到窗口。
如果您不使用故事板,则需要实例化窗口,设置窗口的根视图控制器,并使窗口在didFinishLaunchingWithOptions方法中可见。如果您启动了关闭故事板的单个视图项目,则可以从模板中获取该文档。