在 appDelegate 中设置 UITabBarItem 徽章值

Set UITabBarItem badge value in appDelegate

我对这个问题进行了大量搜索,并在 Objective-C 中找到了很多答案。但是,我还没有在 Swift 中找到答案。

我尝试翻译 Objective-C,在 didFinishLaunchingWithOptions 中执行以下代码:

if let rootViewController = self.window?.rootViewController {
    print("root")
    if let tabBarController = rootViewController.tabBarController {
        print("tab")
        let tabBarItem = tabBarController.tabBar.items![3]
        tabBarItem.badgeValue = "!"
    }
}

代码从不打印 "tab",所以我显然没有正确访问它。帮忙?

继续假设您的根视图控制器实际上是标签栏控制器,您需要更改:

if let tabBarController = rootViewController.tabBarController {

至:

if let tabBarController = rootViewController as? UITabBarController {