动态替换TabBar项目

时间:2012-05-03 10:47:57

标签: iphone ios uitabbarcontroller uitabbar uitabbaritem

我有一个UITabBarController,带有两个UIViewControllers f.e“All Messages”,“Favorite Messages”。

对于某些动作,我需要用new(其他动作,其他图像)动态替换我的UITabBar项... ...

所以它应该是“喜欢”和“不喜欢”而不是“所有消息”,“喜欢的消息”。

最好的方法是什么?

// Note
//I don't need ViewControllers for these items, I will use TabBar delegate
//so I can't do following:
tabBarVC.viewControllers = [NSArray ...new view controllers]

由于

3 个答案:

答案 0 :(得分:0)

来自UITabBarController文档

  

要配置选项卡栏控制器的选项卡,请将为每个选项卡提供根视图的视图控制器分配给viewControllers属性。

你能做什么只是暂时隐藏tabBarController的工具栏并在你的选项中创建一个新的UIToolbar

答案 1 :(得分:0)

您可以在tabbarselect方法中使用此代码

 if(tabbar.selectedindex==1)
 {
  self.title=@"newtitle"
 }
像这样

 UITabBarController *tabbar1 = [[UITabBarController alloc] init];


secondviewcontroller  *second = [[secondviewcontroller alloc] initWithNibName:nil bundle:nil];
second.title=@"message";

firstviewcontroller *third=[[firstviewcontroller alloc]initWithNibName:nil bundle:nil];
third.title=@"all message";

   if(tabbar1.selectedindex==0)
 {
 second.title=@"like";
  third.title=@"DisLike";
 }

tabbar1.viewControllers = [NSArray arrayWithObjects: second,third,nil]; 
tabbar1.view.frame=CGRectMake(0, 0, 320, 460);
[self.view addSubview:tabbar1.view];

答案 2 :(得分:0)

此示例显示删除所选的当前标签栏项目。

NSMutableArray* newArray = [NSMutableArray arrayWithArray:self.tabBarController.viewControllers];
[newArray removeObject:self];
[self.tabBarController setViewControllers:newArray animated:YES];

tabbar items array进行更改并致电setviewcontrollers