使用IB rootViewController在AppDelegate中初始化UINavigationController

时间:2012-08-17 17:51:21

标签: objective-c cocoa-touch uinavigationcontroller

我正在我的AppDelegate中工作,以使应用程序的视图在每次来自背景时返回到第一个视图。

首先,我在IB中设置了导航控制器作为我的初始视图控制器。 尽管如此,如果我把

if (!self.window.rootViewController.navigationController)
NSLog(@"null rootview navcontroller");

在appDidFinishLaunching中发生NSLog,表明我的窗口的导航控制器为空。 所以,我想我会尝试用自己实例化它:

self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.window.rootViewController];

但是,当我尝试时,我得到错误:

Pushing a navigation controller is not supported

我必须承认我真的不明白。我不应该推什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果导航控制器是初始视图控制器,那么self.window.rootViewController应该是导航控制器本身。

rootViewController的类型是UIViewController,因此您需要根据需要进行投射。