2009-12-21 346 views
0

我正在做斯坦福Iphone开发课程的第四个任务。NavigationController,为什么它不能按我想要的方式工作

- (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通过导航栏中的“返回根控制器”按钮来获取新视图。当我点击它时,我回到导航控制器视图是空的。

我在做什么错?

回答

2

,如果你希望你的ListViewController是RootViewController的,你应该做的水木清华这样

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

,而不是pushViewController。 pushViewController只需将你的listView添加到控制器堆栈的顶部。初始viewController停留在一个空的视图。

+0

那是什么我尝试做的,我怎么把它添加到堆栈? – Oscar 2009-12-21 15:24:45

+0

对不起,我读了你的答案错误,忽略了上述内容。 – Oscar 2009-12-21 15:25:56

0

您也可以实例化过程中指定您ListViewController作为根视图控制器为您导航控制器:

[[UINavigationController alloc] initWithRootController:listview ] 
相关问题