对于我的应用程序中的导航,我正在使用UITabBarController。这工作正常,但在我的一个viewcontrollers中,我想将另一个视图控制器推入tabbar视图。 换句话说,我想用另一个替换所选的viewcontroller。 我正在使用以下代码执行此操作:
self.tabBarController.selectedViewController = self.otherViewController;
我的TabBarController中的viewControllers列表不包含otherViewController。 这个技巧在IOS 4.3中运行良好,但IOS 5不喜欢它。
有没有人知道IOS 5接受的解决方案?
答案 0 :(得分:12)
您想要使用另一个视图控制器来替换标签栏中的视图控制器吗? 如果是这样,您必须通过设置一个新窗口来编辑tabbar中的viewControllers属性。它会是这样的:
UIViewController *thisIsTheViewControllerIWantToSetNow;
int indexForViewControllerYouWantToReplace;
NSMutableArray *tabbarViewControllers = [self.tabbar.viewControllers mutableCopy];
[tabbarViewControllers replaceObjectAtIndex:indexForViewControllerYouWantToReplace withObject:thisIsTheViewControllerIWantToSetNow];
self.tabbar.viewControllers = tabbarViewControllers;
[tabbarViewControllers release];
答案 1 :(得分:0)
您不能在此标签上使用导航控制器或类似设备吗?
无论如何这应该有效:
NSMutableArray *controllers = [NSMutableArray arrayWithArray:rootTabBarController.viewControllers];
[controllers replaceObjectAtIndex:rootTabBarController.selectedIndex withObject: newController];
rootTabBarController.viewControllers = controllers;