2011-07-04 23 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]; 

但是这不会推控制器。任何人有任何想法?

回答

1

如果你有索引2导航控制器,你会当你这样做[tab.viewControllers objectAtIndex:2];所以应该得到一个导航控制器

[..] 
UINavigationController * navigationController = [tab.viewControllers objectAtIndex:2]; 
[navigationController pushViewController:detailViewController animated:NO]; 
相关问题