如何将新视图控制器推送到不同的导航控制器堆栈并切换到它?

时间:2010-04-08 00:08:08

标签: iphone uiviewcontroller uinavigationcontroller uitabbarcontroller

我在Interface Builder

中创建了一个标签栏控制器

标签栏内有4个导航控制器。

每个控制器都是完全独立运行的(耶!)

我需要做的是将视图控制器推到不同的导航控制器堆栈上,并将焦点切换到相应的标签栏项目(以便用户侧向移动(到不同的选项卡)和向上移动(到一个新的观点)同时)。

这是我第一次使用标签栏控制器,虽然这一点很简单,但弄清楚这一点让我感觉很合适。任何你可以折腾我的方式的提示都会非常感激。

1 个答案:

答案 0 :(得分:2)

我会使用以下内容作为起点,其中whichTab是您要推送的选项卡的索引,而newViewController是您要推送和切换到的视图控制器。您可能需要尝试推送与切换的顺序。

UITabBarController *tabBarController = (UITabBarController *)[[[UIApplication sharedApplication] delegate] tabBarController];

UINavigationController *otherNavController = (UINavigationController *)[[tabBarController viewControllers] objectAtIndex:whichTab];

[otherNavController pushViewController:newViewController animated:NO];
tabBarController.selectedIndex = whichTab;