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.

È stato utile?

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).

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