Implementé una solución UITabBar personalizada para un proyecto. Esencialmente, si hay más de 5 elementos, utilizo un scrollView que permitirá al usuario desplazarse por los elementos de pestañas adicionales y suprime el botón más. Una apariencia similar se puede ver en la aplicación Weather Channel.Suprimir másNavigationController en UITabBarController personalizado
Cada elemento de la barra de pestañas corresponde a un UINavigationController que administra la pila de vistas para cada pestaña. El problema que tengo es cuando tengo más de 5 elementos de pestaña, desde la pestaña 5 en adelante no mantiene correctamente la pila de navegación. Parece que el control de navegación más mata la pila de navegación cada vez que regresas a esa pestaña y vuelves a la página inicial.
hemos anulado el método setSelectedViewController de la siguiente manera:
- (void) setSelectedViewController:(UIViewController *)selectedViewController {
[super setSelectedViewController:selectedViewController];
if ([self.moreNavigationController.viewControllers count] > 1) {
self.moreNavigationController.viewControllers = [[NSArray alloc] initWithObjects:self.moreNavigationController.visibleViewController, nil];
}
}
Este código se eliminará el más funcionalidad en el botón de navegación izquierda, pero no resuelve el problema de mantener la pila de navegación. Todas las demás pestañas funcionan bien. Puedo recorrer varias vistas y la pila se mantiene después de que salgo y regrese a esa pestaña. Entiendo que este es un tema complicado, por lo tanto, avíseme si hay áreas donde pueda brindar claridad. ¡Gracias!
Hice esto de una manera bastante diferente, pero utilicé su concepto de colocar solo el primer ViewController y cargar todos los demás dinámicamente. ¡Bien hecho! – Marquis103