我想从tabbar控制器中完全删除所有视图控制器,无论它是否包含,以及添加新的视图控制器 在运行时进入tababr控制器?是否可以这样做?我已经完成了以下操作,它没有提供输出?
UIViewController *thisIsTheViewControllerIWantToSetNow;
int indexForViewControllerYouWantToReplace;
NSMutableArray *tabbarViewControllers = [self. tabController.viewControllers mutableCopy];
[tabbarViewControllers removeAllObjects];
self.tabController.viewControllers = [NSArray arrayWithObjects:self.moreNavController, self.logInNavController, nil];;
答案 0 :(得分:0)
假设给出的示例中的self
是UITabBarController
的实例,则尝试直接操作其tabbar
是不合适的。而是设置viewControllers
属性。
正如UITabBarController
文档所述:
tabBar与此控制器关联的标签栏视图。 (只读)
@property(非原子,只读)UITabBar * tabBar
讨论
你应该 永远不要试图操纵存储在其中的UITabBar对象 属性。如果您尝试这样做,标签栏视图会抛出一个 例外。要配置标签栏界面的项目,您需要 应该改为将一个或多个自定义视图控制器分配给 viewControllers属性。标签栏收集所需的标签栏 来自您指定的视图控制器的项目。