Pregunta

La funcionalidad principal de mi aplicación es controlado por un UITabBarController. Sin embargo, tengo que cargar una vista que tiene una UINavigationController. Cuando vuelvo a mi UITabBarController utilizando

        self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:0];

Mi UITabBarController ya no responde a los clics. Parece que la vista no tiene el foco.

Sin embargo, si utilizo este código para volver a la UITabBarController:

[window addSubview:tabBarController.view]

Mis botones responderán. Siento como "addSubview" es menos eficiente porque nunca me quito la vista desde la ventana y por lo tanto debe ser la adición de una segunda copia de la vista a la pila. ¿Estoy en lo correcto? ¿Hay una manera de utilizar el primer método y hacer mis botones responden? Por favor, hágamelo saber.

¿Fue útil?

Solución

Parece que tal vez usted está presentando el controlador de navegación de forma incorrecta. Que definitivamente no debe ser la adición de puntos de vista directamente a la ventana. ¿Quieres presentarlo utilizando

[myTabBarController presentModalViewController:myNavController animated:YES];

Cuando haya terminado con el controlador de navegación de descartarlo con

[myTabBarController dismissModalViewControllerAnimated:YES];

y todo debería funcionar.

Por cierto, todo esto está documentado en la documentación para UIViewController y el "View Controller Guía de programación para iPhone OS" documento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top