我只想在用户单击带有徽章的标签栏后才从标签栏中删除徽章
例如,徽章出现在“新闻”选项卡上,如下所示。
如果我单击“新闻”选项卡,徽章仍会显示。只有在我单击任何其他选项卡(新闻除外)后,徽章才会消失。
如何在应用程序委托中实现这一点?
编辑
我尝试通过以下代码设置 UITabbardelegate:
tabController.tabBar.delegate = self;
但我不断收到以下错误
不允许更改由标签栏控制器管理的标签栏的委托。
我该如何解决这个问题?
我只想在用户单击带有徽章的标签栏后才从标签栏中删除徽章
例如,徽章出现在“新闻”选项卡上,如下所示。
如果我单击“新闻”选项卡,徽章仍会显示。只有在我单击任何其他选项卡(新闻除外)后,徽章才会消失。
如何在应用程序委托中实现这一点?
编辑
我尝试通过以下代码设置 UITabbardelegate:
tabController.tabBar.delegate = self;
但我不断收到以下错误
不允许更改由标签栏控制器管理的标签栏的委托。
我该如何解决这个问题?
在您的情况下,1徽章位于index 3
选项卡上,因此您可以:
[[tabBar.items objectAtIndex:3] setBadgeValue:nil];
由您决定用户何时点击带有徽章的选项卡,您可以通过首先tag
为您的选项卡项目分配 a 来获得该反馈,然后使用:
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
switch (item.tag)
{
case 3: /* News */
/* Tabbar item #3 was pressed, do something here. */
break;
}
}