从标签栏控制器中完全删除所有视图控制器
问题描述:
我想从tabbar控制器完全删除所有视图控制器,无论它是否包含,以及在运行时将新视图控制器 添加到tababr控制器中是否可以这样做?做了如下的事情,它没有给出输出?从标签栏控制器中完全删除所有视图控制器
UIViewController *thisIsTheViewControllerIWantToSetNow;
int indexForViewControllerYouWantToReplace;
NSMutableArray *tabbarViewControllers = [self. tabController.viewControllers mutableCopy];
[tabbarViewControllers removeAllObjects];
self.tabController.viewControllers = [NSArray arrayWithObjects:self.moreNavController, self.logInNavController, nil];;
答
假设self
中给出的例子是UITabBarController
实例然后试图直接操纵其tabbar
是不合适的。而是设置viewControllers
属性。 作为UITabBarController
文档状态:
的TabBar与此控制器相关联的选项卡栏视图。 (只读)
@属性(非原子,只读)UITabBar *的TabBar
讨论
你应该 从未尝试操作存储在此 属性UITabBar对象本身。如果您尝试这样做,则标签栏视图会抛出 异常。要为标签栏界面配置项目,您应该将 分配一个或多个自定义视图控制器给 viewControllers属性。标签栏从您指定的视图控制器中收集所需的标签栏 项目。
什么是'self'在这个例子中,哪里是它的'tabbar'属性定义,并执行'tabbar'属性包含什么样的价值时,上面的代码运行吗? – Jonah 2012-02-21 05:49:40
请参阅编辑代码 – nameless 2012-02-21 06:12:14