我有一个带TabBar和标签的iPhone应用程序。每个选项卡都加载了UIViewControllers,我想要的特定选项卡是更改与tab关联的UIViewController。当我调用PresentViewController时,它会更改UIViewController,但也会隐藏我不想要的TabBar。
有人可以解释一下需要做什么吗?
由于
答案 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调用它而不是显示它。