Domanda

Qualche idea sul perché funzioni:

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

Ma questo no?

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

Preferirei non dover fornire un indice di barra delle schede esplicito (2 nel codice sopra). Inoltre, c'è un modo per ottenere l'indice della barra della scheda dall'interno del controller di visualizzazione nel caso in cui il primo snippet è l'unico modo per far funzionare questo?

Grazie.

È stato utile?

Soluzione

Il tabbaritem a cui ti riferisce è effettivamente un elemento nel tabbarviewcontroller? In caso contrario, allora c'è il tuo problema. Puoi conoscere l'indice del tuo ViewController perché specifica l'ordine quando si impostano i controller di visualizzazione nel tuo TabbarviewController, quindi se si imposta ViewController prima nel tuo TabbarviewController, il suo pulsante avrà un indice di 0.

Con il tuo commento la tua domanda diventa più chiara per me, come ha affermato la risposta, forse una volta impostato l'UitabbarController ViewController, afferra il suo tabbaritem e successivamente cambia a quella proprietà ViewController non essere aggiornata dal TabbarviewController (potrei sbagliarmi. )

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top