为什么Xcode 4基于导航的应用程序需要“window.rootViewController = self.navigationController”?

时间:2011-04-23 11:42:10

标签: iphone ios uitableview uinavigationcontroller rootview

为什么didFinishLaunchingWithOptions方法中需要以下行?

self.window.rootViewController = self.navigationController;

也就是说,注意到在MainWindow XIB中的Interface Builder中已经有导航控制器,它的导航栏和RootViewController在它的层次结构中。

整个方法的复制供参考:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    // Add the navigation controller's view to the window and display.
    self.window.rootViewController = self.navigationController;
    [self.window makeKeyAndVisible];
    return YES;
}

1 个答案:

答案 0 :(得分:7)

您还没有在MainWindow.xib中做过一件事:将导航控制器的视图添加到窗口。

该行

self.window.rootViewController = self.navigationController;

就是这么做的。替代方案(以及我们在iOS 3中编写的内容)是:

[self.window addSubview:self.navigationController.view];