Frage

Jede Idee, warum dies funktioniert:

[[[[[self tabBarController] tabBar] items] objectAtIndex:2] 
                                          setBadgeValue:@"Hello"];

Aber das nicht?

[[self tabBarItem] setBadgeValue:@"Hello"];

Ich müsste lieber keinen expliziten Registerkarten -Balksindex angeben (2 im obigen Code). Gibt es auch eine Möglichkeit, den Registerkartenindex aus dem Ansichtscontroller aus zu erhalten, wenn der erste Ausschnitt die einzige Möglichkeit ist, diese Arbeit zu machen?

Vielen Dank.

War es hilfreich?

Lösung

Ist das TabBarItem, auf das Sie sich dort beziehen, tatsächlich ein Element im TabBarViewController? Wenn es nicht ist, gibt es Ihr Problem. Sie können den Index Ihres ViewController kennen, da Sie die Reihenfolge beim Einstellen der Ansichtscontroller in Ihrem TabBarViewController festlegen. Wenn Sie also ViewController in Ihrem TabBarViewController festlegen, hat der Schaltfläche einen Index von 0.

Mit Ihrem Kommentar wird Ihre Frage für mich klarer, wie in der Antwort auch die UitabbarController ViewController festgelegt wird, ergrößt sich nach dem TabBarItem und später Änderungen an dieser Ansichtcontroller -Eigenschaft, die nicht von der TabBarviewController aktualisiert wird (ich könnte falsch sind. ))

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top