2

我想知道在所有 iOS 应用程序中我们必须为我们的 UIWindow 对象编写 makeKeyAndVisible 。那么是否有一个我们不希望我们的应用程序 makeKeyAndVisible 的示例。

如果我们总是在任何应用程序中都需要它,那么为什么苹果会自动为我们编写它,就像他们为 @synthesize 作为 iOS 6 的一部分所做的那样?

4

3 回答 3

11

Apple 使用情节提要自动处理 makeKeyAndVisible

使用故事板,iOS 执行以下步骤:

  • 它为您实例化一个窗口。
  • 它加载主故事板并实例化其初始视图控制器。
  • 它将新的视图控制器分配给窗口的 rootViewController 属性,然后使窗口在屏幕上可见。
于 2013-02-05T18:55:29.030 回答
10

一个应用程序可以有多个窗口。调用makeKeyAndVisible用于指定哪个是当前的。

尽管大多数应用程序只有一个窗口,但无法假设您的主窗口是关键窗口。因此,您必须显式调用makeKeyAndVisible.

于 2013-02-05T18:53:50.203 回答
2

如果您使用故事板来启动您的应用程序,则不需要调用makeKeyAndVisible

您可以尝试在 Xcode 6 中创建一个新项目。该项目没有使用makeKeyAndVisible,如果您尝试获取 keyWindow,您将获得 nil。

于 2014-11-13T01:39:54.313 回答