Abrir una vista en UITabBarController
-
03-07-2019 - |
Pregunta
Necesito abrir programáticamente una pestaña determinada en mi barra de pestañas.
Intenté llamar al siguiente método desde mi UITabBarController:
self.selectedViewController = myVController;
Lo que no funciona.
¿Cuál es la forma correcta de abrir una pestaña?
Gracias.
Actualización: probé el siguiente código:
self.selectedViewController = [ [self viewControllers] objectAtIndex: 0];
que me abre una pestaña deseable (se está seleccionando), pero la vista activa no se está actualizando.
Solución
Con respecto a la propiedad selectedIndex
, los documentos de Apple dicen:
En versiones de iPhone OS anteriores a versión 3.0, esta propiedad refleja el índice del elemento de la barra de pestañas seleccionado solamente. Intentando establecer este valor en un índice de un controlador de vista que es no visible en la barra de pestañas, pero es En su lugar gestionado por la navegación Más controlador, no tiene efecto.
Quizás este fue tu problema?
Una posible solución es usar su propio UITabBar
y manejar sus propias vistas. Entonces puedes hacer algo como esto:
[tabBar setSelectedItem:[tabBar.items objectAtIndex:1]];
Simplemente implemente UITabBarDelegate
y defina esta función para obtener mensajes de selección de elementos y cambiar manualmente las vistas. (Aunque si está utilizando las funciones avanzadas UITabBarController
, puede que no valga la pena su esfuerzo).
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
}
Otros consejos
La forma en que lo he hecho es usar self.tabBarController.selectedIndex = 1
(la primera pestaña está en el índice 0).