2009-02-18 27 views
11

Estoy tratando de seleccionar/cambiar programáticamente la pestaña del UITabViewController.Cómo cambiar la pestaña (de un UITabViewController) mediante programación?

he intentado hacerlo a través de:

self.tabBarController.selectedIndex = 2; 

Esta parece ser la forma en que debería hacerlo, pero no funciona. Pensé que tal vez self.tabBarController devuelve un objeto de solo lectura (ya recuerdo haberlo leído en alguna parte), pero no estoy seguro de cómo hacerlo funcionar.

¡Se agradece cualquier ayuda!

+0

Sólo para estar seguro - le están proporcionando índice correcto? El índice de pestañas está ** basado en cero **, por lo que para la segunda pestaña debe proporcionar el índice 1. –

Respuesta

29

Conjunto selectedViewController:

self.tabBarController.selectedViewController = viewControllerYouWant; 

Por ejemplo,

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

De acuerdo con los documentos, selectedIndex o selectedViewController son las propiedades que desee y son a la vez asignable.

La propiedad tabBarController es de solo lectura, pero devuelve un objeto que se puede editar.

Así que todo su código me parece correcto.

0

estoy haciendo algo como esto:

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

Esto funciona bien para mí, si quiere hacerlo por el índice.

[self.tabBarController setSelectedIndex:2]; 
Cuestiones relacionadas