我正在阅读Apple关于导航控制器的文档,发现这一点含糊不清,难以理解。
它是在online documentation导航控制器中编写的。
导航控制器视图
导航控制器是一个容器视图控制器 - 就是它 将其他视图控制器的内容嵌入其自身内部。您 从其view属性访问导航控制器的视图。这个 视图包含导航栏,可选工具栏和 对应于最顶层视图控制器的内容视图。图2 显示如何组合这些视图以呈现整体导航 接口。 (在此图中,导航界面更进一步 嵌入在标签栏界面内。)虽然内容如此 导航栏和工具栏视图的更改,视图本身不会。 实际更改的唯一视图是自定义内容视图 由导航堆栈上最顶层的视图控制器提供。
由此,我的理解是在这个“视图”属性中。在这个视图中应该至少有两个子视图。一个是navigationBar,另一个是当前显示的viewController视图的contentView。但是当我调试时,只有导航栏显示另一个名为UINavigationTransitionView的视图显示。
我的问题是,这是正常的吗?我做错了什么?
其次,访问当前显示的viewController视图的最常用方法是仅使用对导航控制器的引用。
由于
答案 0 :(得分:0)
UINavigationTransitionView控制器包含一个包装器视图,该实例将具有当前uiviewcontroller的视图。
答案 1 :(得分:0)
您可以将此视图作为UINavigationTransitionView的子视图找到。然而,这不是“正确”的方式。正确的方法是浏览属性“topViewController”,然后查看它的视图:
self.navigationController.topViewController.view
如果您需要另一个视图控制器或其视图,则可以通过viewControllers属性访问整个视图控制器的导航控制器层次结构。
self.navigationController.viewControllers