iOS编程:了解UINavigationController和RootViewController

时间:2011-04-16 10:04:39

标签: objective-c ios uinavigationcontroller rootview

我正在阅读Apple doc,但我不明白root控制器是什么。 doc说这是堆栈底部的控制器。也许,这是我第一次推出的控制器吗?任何人都可以解释这个概念吗?

从Apple doc UINavigationController,我看到有一个名为initWithRootViewController的方法

  

初始化并返回一个新的   创建导航控制器。    - (id)initWithRootViewController :( UIViewController   *)RootViewController的

这是什么意思?那么,是否可以更改根视图控制器?

2 个答案:

答案 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!