在按下的UITabBarController上设置徽章

时间:2013-04-25 21:22:35

标签: iphone ios uinavigationcontroller uitabbarcontroller

当用户点击按钮时,我创建了一个UITabBarController,其上附有两个viewcontrollers。 然后我将TabBarController推到我的navigationController堆栈上,它显示没有问题。问题是在加载tabbarControlelr时尝试在其中一个标签栏项目上设置徽章,我试过了:

[[self.tabBarController.viewControllers objectAtIndex:1] setBadgeValue:@"1"];

以及这一个的很多变化,但是没有一个在tabbar项目上给我一个圆形的红色按钮。

有什么建议吗?

谢谢,

罗恩

修改

编码我如何呈现tabBarController

Airline_RosterAppDelegate *appDelegate = (Airline_RosterAppDelegate *)[[UIApplication sharedApplication] delegate];
CrewHere *vc = [[CrewHere alloc] initWithNibName:@"CrewHere" bundle:nil];
vc.title = @"Crewlist";

MessagesDetailed *mvc = [[MessagesDetailed alloc] initWithNibName:@"MessagesDetailed" bundle:nil];
mvc.title = @"Messageboard";

[tabbar setViewControllers:[NSArray arrayWithObjects:vc, mvc, nil]];
[tabbar setToolbarItems:[NSArray arrayWithObjects:@"Crewlist", @"Messageboard", nil]];

[appDelegate.navigationController pushViewController:tabbar animated:YES];

1 个答案:

答案 0 :(得分:0)

属性'badgeValue'在UITabBarItem上定义。你可以用:

设置它
  UITabBarItem *item = [self.tabBarController.tabBar.items objectAtIndex: 1];
  item.badgeValue = @"1";
  ...

当'UITabBarController被加载'时,上面的代码也行不通,你的代码也不行。您只能在控制器出现后执行此操作,因为只有在此时才可以确定所有视图元素实际存在。将viewDidAppear:animated:

放入tabBarController

[编辑后,编辑]

您不能使用NSString的NSArray调用setToolbarItems:;数组需要UITabBarItem。使用- (id)initWithTitle:(NSString *)title image:(UIImage *)image tag:(NSInteger)tag

进行实例化

此外,您似乎正在混合tool bartab bar - 它们是不同的。