2009-02-18 11 views
11

Sto provando a selezionare/modificare in modo programmatico la scheda di UITabViewController.Come modificare la scheda (di un UITabViewController) a livello di programmazione?

ho provato a farlo tramite:

self.tabBarController.selectedIndex = 2; 

Questo sembra essere il modo in cui avrei dovuto farlo, ma non funziona. Ho pensato che forse il self.tabBarController restituisce un oggetto di sola lettura (mi ricordo di averlo letto da qualche parte), ma non sono sicuro di come farlo funzionare.

Qualsiasi aiuto è apprezzato!

+0

Solo per essere sicuri, stai fornendo l'indice corretto? L'indice di tabulazione è ** zero ** basato, quindi per la seconda scheda è necessario fornire l'indice 1. –

risposta

29

Set selectedViewController:

self.tabBarController.selectedViewController = viewControllerYouWant; 

Per esempio,

self.tabBarController.selectedViewController 
    = [self.tabBarController.viewControllers objectAtIndex:2]; 
3

Secondo la documentazione, selectedIndex o selectedViewController sono le proprietà che si desidera e sono entrambi assegnabili.

La proprietà tabBarController è di sola lettura, ma restituisce un oggetto modificabile.

Quindi tutto il tuo codice sembra giusto per me.

0

che sto facendo qualcosa di simile:

[root setSelectedViewController: [root.historyController navController]]; 
1

questo funziona bene per me, se si vuole farlo in base all'indice.

[self.tabBarController setSelectedIndex:2]; 
Problemi correlati