2011-04-16 38 views
2

我正在阅读Apple文档,但我不明白根控制器是什么。文档说这是控制器的底部。也许,这是我第一次推控制器吗?任何人都能解释这个概念?iOS编程:了解UINavigationController和RootViewController

从苹果的文档UINavigationController,我已经看到了有一个叫initWithRootViewController

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

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

回答

2

请记住,rootViewController不是一种对象类型,而是属性名称。就像Nubbel所说的那样,它恰好是在堆栈底部的特定实例UIViewController

initWithRootViewController这样的方法适用于想要初始化UINavigationController并且告诉它“使用此VC作为第一个VC在层次结构中”的情况。

看起来好像UINavigationController真的不希望您在创建该属性后更改该属性,但it looks like ppl have found ways to do it: - 请记住检查注释以查看这是否为“已批准”的工作方法。

1

就像Docs一样,你已经说过,它是位于堆栈底部的控制器,第一个控制器被推入堆栈。后续的控制器将被推到RootViewController之上。要返回到RootViewController,您可以使用popToRootViewControllerAnimated:方法。此外,你不能改变RootViewController!

+0

谢谢你nubbel。那么initWithRootViewController呢? – 2011-04-16 10:54:48