如何将徽章添加到可自定义的UITabBar?

She*_*lam 19 iphone cocoa-touch objective-c uitabbarcontroller uitabbar

我正在为我的UITabBarController的UITabBar添加徽章:

UITabBarItem *tbi = (UITabBarItem *)[stTabBarController.tabBar.items objectAtIndex:1];
tbi.badgeValue = @"2";
Run Code Online (Sandbox Code Playgroud)

但是,我的UITabBarController是可自定义的,因此索引可能会更改.如何确保徽章应用于正确的UITabBarItem?

kha*_*son 15

您可以考虑的一个建议是在每个标签栏项目上设置标记.您可以在Interface Builder中或按代码创建项目时执行此操作.然后,您可以循环浏览选项卡栏控制器中的视图控制器,查找具有您感兴趣的选项卡栏项目的控制器.例如:

// #define MyTabBarItemTag 999

for (UIViewController *viewController in stTabBarController.viewControllers) {
    if (viewController.tabBarItem.tag == MyTabBarItemTag) {
        viewController.tabBarItem.badgeValue = @"2";
    }
}
Run Code Online (Sandbox Code Playgroud)


She*_*lam 12

UITabBarItem *tbi = (UITabBarItem *)self.tabController.selectedViewController.tabBarItem;
tbi.badgeValue = @"New";
Run Code Online (Sandbox Code Playgroud)

也有效.