根视图控制器的确切含义

问题描述 投票:1回答:1

我从Apple官方文件Start Developing iOS Apps中读取了以下内容:

由特定导航控制器管理的视图控制器的集合称为其导航堆栈。添加到堆栈中的第一项成为根视图控制器,并且永远不会从导航堆栈中弹出(移出)。

但是在Apple View Controller Programming Guide for iOS和网络上的许多其他文档中的另一篇官方文档中,我读到根视图控制器是根视图的控制器,第一个添加到窗口的视图。

根视图控制器是视图控制器层次结构的基础。每个窗口只有一个根视图控制器,其内容将填充该窗口。

因此,在导航视图控制器的情况下,导航视图控制器不应该是根视图控制器吗?上面的第一个文档怎么说它的子视图控制器是根视图控制器?我想念什么吗?感谢您的解释。

ios uinavigationcontroller
1个回答
0
投票

您混合了两种不同的东西。如果navigation stack根控制器位于堆栈的根,但对于windowrootViewController是应用程序启动时出现的第一个视图控制器。虽然在两种情况下都可以更改root。

再次navigationController,当您说它自己应该是​​根而不是它的第一个孩子时,基本上是在伪造apple的第一个语句,这是对的,您无法弹出导航的根。导航控制器不是我们经常使用的控制器,它就像一个容器,在其中容纳路由的整个控制器堆栈。您可以在rootViewController之后来回移动,但不能返回。

都是引用相同名称的不同事物。我认为导航的rootViewController早于window出现在iOS中。尽管它的参考名称有些正确,但要更改应用程序的整个层次结构更改活动窗口的根目录,就像要更改整个导航堆栈,请更改导航的根目录。

© www.soinside.com 2019 - 2024. All rights reserved.