如何在TabBarController的Tab中更改UIViewController

时间:2013-09-19 20:07:47

标签: iphone tabs uitabbarcontroller viewcontroller

我有一个带TabBar和标签的iPhone应用程序。每个选项卡都加载了UIViewControllers,我想要的特定选项卡是更改与tab关联的UIViewController。当我调用PresentViewController时,它会更改UIViewController,但也会隐藏我不想要的TabBar。

有人可以解释一下需要做什么吗?

由于

1 个答案:

答案 0 :(得分:3)

UITabBarController在一个名为viewControllers的属性中保存它的视图控制器的集合。您可以在运行时修改它。有些副作用可能适用于您的应用but read the docs to be sure

一种便利方法(以及如何修改该不可变数组的说明)如下所示:

- (void)replaceTabBarViewControllerAtIndex:(NSUInteger)index with:(UIViewController *)newVC {

    NSMutableArray *newVCs = [NSMutableArray arrayWithArray:self.tabBarController.viewControllers];

    if (index < newVCs.count) {
        newVCs[index] = newVC;
        self.tabBarController.viewControllers = [NSArray arrayWithArray:newVCs];
    }
}

使用新的vc调用它而不是显示它。