为什么标签栏项目的徽章没有更改

sar*_*rah 9 uitabbarcontroller uinavigationcontroller ios swift swift2

我正在尝试更改标签栏项目的徽章但没有成功.我明白标签栏控制器负责控制器的标签栏.

但是,标签栏本身中的某些内容可以由视图控制器(例如徽章)管理

在我的代码中我尝试了这个在视图中加载

self.tabBarItem.badgeValue = "3"
Run Code Online (Sandbox Code Playgroud)

但徽章中没有任何内容

然后我试了一下:

self.tabBarController?.tabBarItem.badgeValue = "3"
Run Code Online (Sandbox Code Playgroud)

哪个不起作用,好吧,我知道为什么第二个代码不起作用,它与使用导航控制器而不是导航项更改导航控件的标题相同.但我不知道为什么第一个代码不起作用

这是我的应用程序的hiechy,我在TeamsTableViewController中这样做,这是团队选项卡中的第一个视图控制器

在此输入图像描述

Wil*_*aan 9

在您的场景中,导航控制器控制tabBarItem而不是TableViewController,因为每个TabBarController都有一个viewControllers数组,并且这些viewControllers中的每一个都与tabBarItem相关联.在您的情况下,tabBarController有两个viewControllers,它们是:

  1. 小组导航控制器
  2. 团队视图控制器

因此团队视图导航控制器是控制选项卡栏项的视图控制器.

这样做可以解决您的问题

self.navigationController?.tabBarItem.badgeValue = "3"
Run Code Online (Sandbox Code Playgroud)


She*_*n S 2

尝试这个

var cart: UITabBarItem = super.tabBarController.viewControllers[yourIndex].tabBarItem()
cart.badgeValue = "3"
Run Code Online (Sandbox Code Playgroud)