我正在阅读Apple doc,但我不明白root控制器是什么。 doc说这是堆栈底部的控制器。也许,这是我第一次推出的控制器吗?任何人都可以解释这个概念吗?
从Apple doc UINavigationController,我看到有一个名为initWithRootViewController的方法
初始化并返回一个新的 创建导航控制器。 - (id)initWithRootViewController :( UIViewController *)RootViewController的
这是什么意思?那么,是否可以更改根视图控制器?
答案 0 :(得分:2)
请记住rootViewController
不是一种对象,而是属性名称。正如Nubbel所说,恰好是堆栈底部的特定UIViewController
实例。
像initWithRootViewController
这样的方法适用于您想要初始化UINavigationController
的情况,并告诉它“将此VC用作层次结构中的第一个VC”。
似乎UINavigationController
确实不希望您在创建后更改该属性,但是it looks like ppl have found ways to do it: - 请记住检查注释以查看这是否是“已批准”的方法工作
答案 1 :(得分:1)
就像文档和你已经说过的那样,它是堆栈底部的控制器,第一个控制器被推送到堆栈。后续控制器将被推送到RootViewController之上。要返回RootViewController,您可以使用popToRootViewControllerAnimated:
方法。
此外,您无法更改RootViewController!