什么是导航控制器" s"视图"属性?

时间:2015-02-12 13:01:00

标签: ios objective-c uinavigationcontroller

我正在阅读Apple关于导航控制器的文档,发现这一点含糊不清,难以理解。

它是在online documentation导航控制器中编写的。

  

导航控制器视图

     

导航控制器是一个容器视图控制器 - 就是它   将其他视图控制器的内容嵌入其自身内部。您   从其view属性访问导航控制器的视图。这个   视图包含导航栏,可选工具栏和   对应于最顶层视图控制器的内容视图。图2   显示如何组合这些视图以呈现整体导航   接口。 (在此图中,导航界面更进一步   嵌入在标签栏界面内。)虽然内容如此   导航栏和工具栏视图的更改,视图本身不会。   实际更改的唯一视图是自定义内容视图   由导航堆栈上最顶层的视图控制器提供。

由此,我的理解是在这个“视图”属性中。在这个视图中应该至少有两个子视图。一个是navigationBar,另一个是当前显示的viewController视图的contentView。但是当我调试时,只有导航栏显示另一个名为UINavigationTransitionView的视图显示。

enter image description here

我的问题是,这是正常的吗?我做错了什么?

其次,访问当前显示的viewController视图的最常用方法是仅使用对导航控制器的引用。

由于

2 个答案:

答案 0 :(得分:0)

UINavigationTransitionView控制器包含一个包装器视图,该实例将具有当前uiviewcontroller的视图。

答案 1 :(得分:0)

您可以将此视图作为UINavigationTransitionView的子视图找到。然而,这不是“正确”的方式。正确的方法是浏览属性“topViewController”,然后查看它的视图:

    self.navigationController.topViewController.view

如果您需要另一个视图控制器或其视图,则可以通过viewControllers属性访问整个视图控制器的导航控制器层次结构。

    self.navigationController.viewControllers

更多信息: https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UINavigationController_Class/index.html