gpt4 book ai didi

ios - Swift - 收到推送后设置 TabBarBadge

转载 作者:行者123 更新时间:2023-11-30 13:54:31 25 4
gpt4 key购买 nike

我有一个小问题。我想在收到推送后在选项卡上设置角标(Badge),但我不知道如何更改角标(Badge)值(来 self 的 AppDelegate)

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject])
{
print("didReceiveRemoteNotification")
//can't find or access the tabBarItem...

}

我尝试了不同的事情。有一次我在展开时得到一个 nil,有时我正在创建一个新的 TabBarController,我可以更改角标(Badge)值...但问题是它不是显示的 TabBar。 (第一个是零,第二个是"new")

这里有一些尝试:

let tabBarC = self.storyboard?.instantiateViewControllerWithIdentifier("TC")
let items = tabBarC?.tabBarController?.tabBar.items
let tab = items![3]
tab.badgeValue = "999"


let tabBarController: UITabBarController = storyboard!.instantiateViewControllerWithIdentifier("TC") as! UITabBarController

let tabArray = tabBarController.tabBar.items as NSArray!
let tabItem = tabArray.objectAtIndex(3) as! UITabBarItem
tabItem.badgeValue = "!"
print(tabItem.title)

啊,我的 TabBarController 不是我的 rootViewController

您有什么建议可以解决这个问题吗?

谢谢:)

最佳答案

好吧,我找到了一个“解决方案”...我没有找到另一个适合我的解决方案...

我正在设置一个公共(public)变量 BadgeValue。每次我收到推送时,我都会改变它的值。

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject])
{
BadgeValue = "!"
}

在 ViewDidAppear 上的每个 VC 中我都会这样做:

BadgeValue = "" //Just in the Tab where the BadgeValue is shown
let tabArray = tabBarController?.tabBar.items as NSArray!
let tabItem = tabArray.objectAtIndex(3) as! UITabBarItem
if(BadgeValue != ""){
tabItem.badgeValue = BadgeValue
} else {
tabBarItem.badgeValue = .None
}

如果您遇到同样的问题,也许这对您有帮助...(我知道这个解决方案不好,但它有效。不完美,但它有效)

关于ios - Swift - 收到推送后设置 TabBarBadge,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33810601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com