将UIViewController更改为UINavigationController的最佳方法是什么?

时间:2010-02-16 13:20:50

标签: iphone

我刚刚意识到我的'root'viewController应该是一个UINavigationController。现在我想改为将其改为UINavigationController而只是好奇我的最佳选择。我使用IB构建了这个视图和所有其他视图,如果它有所不同。

我最担心的是我必须做很多复制/粘贴和重新编码以使一切正常,或者就像手动编辑我的控制器并将扩展名更改为UINavigationController一样简单。

由于

4 个答案:

答案 0 :(得分:6)

您不会将现有视图控制器转换为导航控制器。

尽管UINavigationController是UIViewController的子类,但它的任务是管理其他视图控制器,而不是视图本身的管理。你不要把它们换成另一个。相反,您将UIViewControllers设置为由nav控制。

要在IB中向项目添加导航,请打开xib并拖动UINavigationController。然后将导航控制器的rootControlller属性设置为现有的UIViewController。

你已经完成了。

答案 1 :(得分:4)

您也可以通过选择IB中的视图控制器“嵌入”导航控制器,然后选择编辑器 - >嵌入 - >导航控制器

答案 2 :(得分:1)

您可以实例化一个简单的非子类UINavigationController并将其原始UIViewController作为其根控制器,例如:

YourRootViewController *rootViewController = [[YourRootViewController] initHoweverYouInitIt];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:rootViewController];

也许是[rootViewController release];,具体取决于您将如何管理内存。

答案 3 :(得分:1)

UINavigationController与UIViewController有'is-a'关系,因此您应该能够在Interface Builder中更改其类类型,而无需进行其他更改。