在UITabBarController上更改selectedIndex而不更改当前视图

时间:2014-01-17 10:42:11

标签: ios objective-c uinavigationcontroller storyboard uitabbarcontroller

我有一个UITabBarController有4个标签,前两个是“程序”和“锻炼”。

在第一个标签的视图中,用户可以选择他们想要执行的程序,然后点击“执行锻炼”,这将把他们带到锻炼屏幕。

我的目标是将锻炼屏幕显示为与程序选择相同的导航控制器的一部分,但是我想更新UITabBarController以反映我们现在在锻炼屏幕上的事实。

问题在于,如果我打电话

UITabBarController *tabController = (UITabBarController*)self.navigationController.parentViewController;
[tabController setSelectedIndex:1];

这将在新WorkoutViewController内打开UINavigationController,而不是使用旧版UINavigationController。我意识到由于我的storyboard而发生了两个UINavigationControllers问题,但如果我没有两个单独的selectedIndex,则TabView不会始终保持最佳状态(它在第一次推动后消失。)

My storyboard

如何更新UITabBarController上的UINavigationController而不强制它加载新的{{1}}?

1 个答案:

答案 0 :(得分:0)

我认为你应该断开你的Workout控制器并使用storybord id推送这个控制器而不是来自程序控制器,但更改所选的tab选项索引将此控制器推送到第二个导航cotroller