从tabbarcontroller中完全删除所有视图控制器

时间:2012-02-21 05:33:55

标签: iphone ios ipad

我想从tabbar控制器中完全删除所有视图控制器,无论它是否包含,以及添加新的视图控制器 在运行时进入tababr控制器?是否可以这样做?我已经完成了以下操作,它没有提供输出?

 UIViewController *thisIsTheViewControllerIWantToSetNow; 
 int indexForViewControllerYouWantToReplace;  
 NSMutableArray *tabbarViewControllers = [self. tabController.viewControllers mutableCopy]; 
  [tabbarViewControllers removeAllObjects];



 self.tabController.viewControllers = [NSArray arrayWithObjects:self.moreNavController, self.logInNavController, nil];; 

1 个答案:

答案 0 :(得分:0)

假设给出的示例中的selfUITabBarController的实例,则尝试直接操作其tabbar是不合适的。而是设置viewControllers属性。 正如UITabBarController文档所述:

  

tabBar与此控制器关联的标签栏视图。 (只读)

     

@property(非原子,只读)UITabBar * tabBar

     

讨论

     

你应该   永远不要试图操纵存储在其中的UITabBar对象   属性。如果您尝试这样做,标签栏视图会抛出一个   例外。要配置标签栏界面的项目,您需要   应该改为将一个或多个自定义视图控制器分配给   viewControllers属性。标签栏收集所需的标签栏   来自您指定的视图控制器的项目。

https://developer.apple.com/library/ios/documentation/uikit/reference/UITabBarController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006931-CH3-SW4