2011-07-04 6 views
1

나는 탭 막대 응용 프로그램이 있습니다. 탭 중 하나에 탐색 스택이 있습니다. 프로그래밍 방식으로 탭을 변경하고 새 컨트롤러를 선택한 탭 스택에 푸시하고 싶습니다. 탭을 잘 바꿀 수 있습니다.탭을 변경하고 컨트롤러를 프로그래밍 방식으로 탐색 스택에 밀어 넣으십시오.

KidScienceAppDelegate *appDelegate = (KidScienceAppDelegate*) [[UIApplication sharedApplication] delegate]; 
    UITabBarController *tab=[appDelegate tabBarController] ; 
    tab.selectedIndex=2; 

방금 ​​실행하면 탐색 스택이있는 탭으로 이동하고 루트보기를 표시합니다. 그런 다음 새로운 컨트롤러를 스택에 넣고 싶습니다. 나는 이것을 시도했다 :

ExperimentsNameViewController *detailViewController = [[ExperimentsNameViewController alloc] initWithNibName:@"ExperimentsNameView" bundle:nil]; 

FindViewController *c = [tab.viewControllers objectAtIndex:2]; 
[c.navigationController pushViewController:detailViewController animated:NO]; 

그러나 이것은 컨트롤러를 푸시하지 않는다. 누구든지 어떤 생각을 가지고 있습니까? 당신은 인덱스 2에 네비게이션 컨트롤러가있는 경우 당신이 그렇게 그것이 있어야 [tab.viewControllers objectAtIndex:2];을 수행 할 때

답변

1

, 당신은 탐색 컨트롤러를 얻을 것이다

[..] 
UINavigationController * navigationController = [tab.viewControllers objectAtIndex:2]; 
[navigationController pushViewController:detailViewController animated:NO]; 
관련 문제