如何在点击后从特定标签栏中删除徽章?

时间:2011-09-19 16:57:40

标签: objective-c ios tabbar badge

我希望只有在用户点击带有徽章的标签栏后才能从标签栏中删除徽章

例如,徽章会显示在“新闻”标签上,如下所示。

enter image description here

如果我点击“新闻”标签,徽章仍会显示。只有在点击任何其他标签(新闻除外)后,徽章才会消失。

如何在app delegate中实现此功能?

修改

我尝试通过以下代码设置UITabbardelegate:

tabController.tabBar.delegate = self;

但我一直收到以下错误

不允许更改由标签栏控制器管理的标签栏的代理。'

如何解决此问题?

1 个答案:

答案 0 :(得分:10)

在您的情况下, 1 徽章位于index 3标签上,您可以这样做:

[[tabBar.items objectAtIndex:3] setBadgeValue:nil];

由您来确定用户何时点击带有徽章的标签,您可以首先为您的标签栏项目分配tag,然后使用:

来获得反馈
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{ 
    switch (item.tag) 
    {
        case 3: /* News */
            /* Tabbar item #3 was pressed, do something here. */
            break;
    }
}