2009-12-21 347 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 ] 
相關問題