Ich habe einen Navigationscontroller mit 4 Tab-Leiste Elemente. Jeder hat einen Navigationscontroller im Inneren. Ich möchte in der Lage sein, die 4. Registerkarte Bar Abzeichen Nummer ändern, wenn ich Push-Benachrichtigung, egal in welcher Ansicht oder Registerkarte ich bin. Ich muss das Auto-Layout verwenden, so dass ich keine programmatische Lösung innerhalb der App Delegate verwenden kann . Ich habe das Projekt mit einer einzigen Ansichtsvorlage gestartet.Update Badge von nicht ausgewählten TabBarItem in Swift
Ich habe versucht, auf die gewünschte Registerkarte zu gehen, den Ausweiswert zu ändern und zurück zu kommen, aber natürlich hat es nicht funktioniert. Der TabBarController scheint nur Verweise auf das aktuelle Registerkartenelement zu haben.
var current = self.tabBarController?.selectedIndex
self.tabBarController?.selectedIndex = 3
self.navigationController?.tabBarItem.badgeValue = "34"
self.tabBarController?.selectedIndex = current!
Ordentlich und sauber! Vielen Dank! Ich habe gesehen, dass es in Obj-C mit objectAtIndex (index) gemacht wurde, aber ich konnte nicht finden, von wo man es nennt. Danke nochmal! – pinolo
@Kampai Wie müsste dies geändert werden, um das Badge-Icon-Update im App-Delegaten durchzuführen? Ich kann nicht von dort selbst.tabBarController machen? – user2363025
@ user2363025: Sie brauchen 'rootViewController', um das Abzeichen von' AppDelegate' zu aktualisieren. Lassen Sie rootViewController = self.window? .rootViewController as! UITabBarController! lassen Sie tabArray = rootViewController? .tabBar.items als NSArray! Lassen Sie tabItem = tabArray.objectAtIndex (1) as! UITabBarItem tabItem.badgeValue = "34" ' – Kampai