NavigationController,为什么它不会按照我想要的方式工作

时间:2009-12-21 14:25:26

标签: iphone objective-c uinavigationcontroller

我正在斯坦福Iphone开发课程上完成第四项任务。

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after application launch

    [window addSubview:[navigationController view]];
    [window makeKeyAndVisible];
    ListViewController *listview = [[ListViewController alloc] initWithNibName:@"ListView" bundle:[NSBundle mainBundle]];
    [[self navigationController] pushViewController:listview animated:NO];
    [listview release];
}

所以,我正试图让我的listview在navigationcontrollers视图中。但是发生的事情是listview在导航栏中获得一个带有“返回root控制器”按钮的新视图。当我点击它时,我回到了空的navigationcontroller视图。

我在做错了什么?

2 个答案:

答案 0 :(得分:2)

如果你想让你的ListViewController成为rootViewController,你应该像这样做

[navigationController setViewControllers:[NSArray arrayWithObject:listView] animated:YES];

而不是pushViewController。 pushViewController只是将listView添加到控制器堆栈的顶部。初始viewController保持空视图。

答案 1 :(得分:0)

您还可以在实例化期间将ListViewController指定为导航控制器的根视图控制器:

[[UINavigationController alloc] initWithRootController:listview ]