我有一个标签栏应用程序。其中一个选项卡具有导航堆栈。我想以编程方式更改选项卡,然后将新 Controller 推送到选定的选项卡堆栈。我可以很好地更改标签:
KidScienceAppDelegate *appDelegate = (KidScienceAppDelegate*) [[UIApplication sharedApplication] delegate];
UITabBarController *tab=[appDelegate tabBarController] ;
tab.selectedIndex=2;
如果我只是运行它,它会正确地移动到带有导航堆栈的选项卡并显示 Root View 。然后我想将一个新 Controller 推送到该堆栈上。我试过这个:
ExperimentsNameViewController *detailViewController = [[ExperimentsNameViewController alloc] initWithNibName:@"ExperimentsNameView" bundle:nil];
FindViewController *c = [tab.viewControllers objectAtIndex:2];
[c.navigationController pushViewController:detailViewController animated:NO];
但这不会插入 Controller 。有人有什么想法吗?
最佳答案
如果您在索引 2 处有一个导航 Controller ,那么当您执行 [tab.viewControllers objectAtIndex:2];
时,您将获得一个导航 Controller ,所以它应该是
[..]
UINavigationController * navigationController = [tab.viewControllers objectAtIndex:2];
[navigationController pushViewController:detailViewController animated:NO];
关于ios - 以编程方式更改选项卡并将 Controller 推送到导航堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6566487/