-1

我对 iOS 中的窗口和视图控制器有疑问。我只是看了一下我今天正在处理的iOS项目的应用程序委托,发现它需要...

UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;

在我的应用程序中。

以下是问题:

  1. 这是否意味着 navigationController 是我的应用程序的根视图控制器?NavigationController 是 UIViewController 的子类,但它的任务只是在导航栏提供导航功能,对吗?

  2. 什么是self.window?我想我理解“视图”和“视图控制器”的概念,但我不太明白“窗口”是什么……iPhone 有一个屏幕,但 MacPro 可以有 2 个显示器;这些窗口是针对 iOS 和 OS X 的吗?

4

1 回答 1

0
  1. 可能。self.window.rootViewController 将返回窗口的根视图控制器,我认为在这种情况下,来自情节提要。这条线将返回的对象转换为导航控制器这一事实并不能使其成为一体——它将是故事板中的任何内容(带有未连接到其他任何东西的左箭头的控制器)。假设转换是正确的,这允许您编写诸如 navigationController.topViewController 之类的东西,而不会让编译器抱怨它。至于导航控制器的功能,它确实提供了导航栏的功能,但它也显示了它的内容控制器的视图,它的 topViewController 的视图是你在启动时会看到的。

  2. iOS 中的窗口是 UIWindow,它是 UIView 的子类,因此它与 OS X 中的窗口不同。查看 UIWindow 类参考的概述部分以了解它的作用。

于 2013-02-06T16:33:50.657 回答