2009-12-21 6 views
0

Stanford Iphone Dev Course에서 네 번째 과제를 수행하고 있습니다.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]; 
} 

그래서 내 목록 뷰를 navigationcontrollers 뷰에서 가져 오려고합니다. 그러나 일어나는 일은리스트 뷰가 네비게이션 바에서 "back to rootcontroller"버튼을 가진 새로운 뷰를 얻는다는 것입니다. 그리고 그것을 클릭하면 내가 비어있는 navigationcontroller보기로 돌아갑니다.

무엇이 잘못 되었나요? 당신이 당신의 ListViewController이 rootViewController가 될하려는 경우

답변

2

, 당신은이

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

대신 pushViewController처럼 떨어지게을 수행해야합니다. pushViewController 컨트롤러의 맨 위에 listView를 추가하기 만하면됩니다. 초기 viewController는 빈 뷰로 유지됩니다.

+0

그게 무슨 메신저, 내가 어떻게가 스택에 추가하는 방법은 무엇을하려고? – Oscar

+0

미안하지만, 당신의 대답을 잘못 읽고, 위의 무시하십시오. – Oscar

0

또한 인스턴스 동안 탐색 컨트롤러의 루트 뷰 컨트롤러와 같은 ListViewController을 할당 할 수 있습니다

[[UINavigationController alloc] initWithRootController:listview ] 
관련 문제