objective-c - 单击离开后如何从特定标签栏中删除角标(Badge)?

标签 objective-c ios tabbar badge

我只想在用户点击带有角标(Badge)的标签栏后才从标签栏中删除角标(Badge)

例如,角标(Badge)显示在“新闻”选项卡上,如下所示。

enter image description here

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

我如何在应用委托(delegate)中实现它?

编辑

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

tabController.tabBar.delegate = self;

但我不断收到以下错误

不允许更改由标签栏 Controller 管理的标签栏的委托(delegate)。'

我该如何解决?

最佳答案

在您的例子中,1 角标(Badge)位于 index 3 选项卡上,因此您可以:

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

由您来判断用户何时点击带有角标(Badge)的选项卡,您可以通过首先为您的选项卡栏项目分配一个 标签 来获得该反馈,然后使用:

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

关于objective-c - 单击离开后如何从特定标签栏中删除角标(Badge)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7474545/

相关文章:

ios - Restkit 0.20 JSON 映射以及额外的离线数据

Android以编程方式获取可见布局的高度

objective-c - UItableview 中的选项卡栏

ios - 是否可以从一个标签栏 Controller 导航到另一个标签栏 Controller ?

ios - YTPlayerView 不在模拟器上播放内容(解码失败,错误代码)

objective-c - performSegueWithIdentifier 不实例化 UIViewController

ios - UIView 挥动 ARM

ios - “无法安装约束”,原因 : 'No common superview between views

ios - 应用程序终止并重新启动时如何检测照片库更改?

ios - 使用 UIBezierPath 裁剪图像 - 初学者