NavigationController,为什么它不能按我想要的方式工作
问题描述:
我正在做斯坦福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通过导航栏中的“返回根控制器”按钮来获取新视图。当我点击它时,我回到导航控制器视图是空的。
我在做什么错?
答
,如果你希望你的ListViewController是RootViewController的,你应该做的水木清华这样
[navigationController setViewControllers:[NSArray arrayWithObject:listView] animated:YES];
,而不是pushViewController
。 pushViewController只需将你的listView添加到控制器堆栈的顶部。初始viewController停留在一个空的视图。
答
您也可以实例化过程中指定您ListViewController作为根视图控制器为您导航控制器:
[[UINavigationController alloc] initWithRootController:listview ]
那是什么我尝试做的,我怎么把它添加到堆栈? – Oscar 2009-12-21 15:24:45
对不起,我读了你的答案错误,忽略了上述内容。 – Oscar 2009-12-21 15:25:56