ios - 为什么标签栏项目的角标(Badge)没有改变

标签 ios swift uinavigationcontroller swift2 uitabbarcontroller

我正在尝试更改标签栏项的角标(Badge)但没有成功。我知道标签栏 Controller 负责控制标签栏。

但是,标签栏中的某些内容本身可以由 View Controller 管理,例如角标(Badge)

在我的代码中我尝试了这个 View 确实加载了

self.tabBarItem.badgeValue = "3"

但角标(Badge)中什么也没有出现

然后我尝试了:

self.tabBarController?.tabBarItem.badgeValue = "3"

哪个不起作用,我知道为什么第二个代码不起作用,这与使用导航 Controller 而不是导航项更改导航 Controller 的标题相同。但我不知道为什么第一个代码不起作用

这是我的应用程序的层次结构,我在 TeamsTableViewController 中这样做,它是团队选项卡中的第一个 View Controller

enter image description here

最佳答案

在您的场景中,是导航 Controller 控制 tabBarItem 而不是 TableViewController,因为每个 TabBarController 都有一个 viewController 数组,并且这些 viewController 中的每一个都与一个 tabBarItem 相关联。在您的例子中,tabBarController 有两个 viewController,它们是:

  1. 团队导航 Controller
  2. 团队 View Controller

所以团队 View 导航 Controller 是控制标签栏项目的 View Controller 。

这样做应该可以解决您的问题

self.navigationController?.tabBarItem.badgeValue = "3"

关于ios - 为什么标签栏项目的角标(Badge)没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37523402/

相关文章:

ios - 使用标签栏 Controller 和导航 Controller

closures - 为什么 [weak self] 有效但 [unowned self] 在 Swift 闭包中中断?

ios - 应用程序取消并出现 fatal error : unexpectedly found nil while unwrapping an Optional value

ios - iOS 中的总屏幕解锁时间计算

ios - MMDrawerController 使用 Storyboard 设置从 sideviewcontrollers 导航 centerviewcontroller

ios - 如何在 unbutton 上的 Web 服务中发布 uitextfield 数据

ios - 如何防止细胞周转效应?

iphone - Cocoa Touch 是否有与 Adob​​e Flex 的 HBox 或 VBox 等效的 UIView 或组件?

ios - 如何使用 cocoaMQTT 在 iOS 中使订阅者离线

ios - Objective C 到 Swift 的转换(协议(protocol))