Apri una vista in UITabBarController
-
03-07-2019 - |
Domanda
Devo aprire programmaticamente una certa scheda nella mia barra delle schede.
Ho provato a chiamare il seguente metodo dal mio UITabBarController:
self.selectedViewController = myVController;
Che non funziona.
Qual è il modo giusto per aprire una scheda?
Grazie.
Aggiornamento: ho provato il seguente codice:
self.selectedViewController = [ [self viewControllers] objectAtIndex: 0];
che mi apre una scheda desiderabile (viene selezionata), ma la vista attiva non viene aggiornata.
Soluzione
Per quanto riguarda la proprietà selectedIndex
, i documenti di Apple dicono:
Nelle versioni di iPhone OS precedenti a versione 3.0, questa proprietà riflette l'indice dell'elemento della barra delle schede selezionato solo. Tentativo di impostare questo valore su un indice di un controller di visualizzazione che è non visibile nella barra delle schede, ma lo è invece gestito da Più navigazione controller, non ha alcun effetto.
Forse questo è stato il tuo problema?
Una possibile soluzione consiste nell'utilizzare il proprio UITabBar
e gestire le proprie visualizzazioni. Quindi puoi fare qualcosa del genere:
[tabBar setSelectedItem:[tabBar.items objectAtIndex:1]];
Basta implementare UITabBarDelegate
e definire questa funzione per ottenere i messaggi di selezione degli oggetti e cambiare manualmente le viste. (Anche se stai usando le funzionalità avanzate UITabBarController
, potrebbe non valere la pena.)
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
}
Altri suggerimenti
Il modo in cui l'ho fatto è usare self.tabBarController.selectedIndex = 1
(la prima scheda è all'indice 0).