iphone - porcentaje - Problema al presionar varios controladores de vista en la pila del controlador de navegaciĆ³n
porcentaje bateria iphone ios 10 (2)
El problema con la respuesta más actual es que uno y dos serán visibles en una fracción de segundo antes de que el tercero se haga visible. No es un gran problema, pero no causará una buena impresión en el usuario. La solución que estás buscando:
NSMutableArray *controllers = [self.navigationController.viewControllers mutableCopy];
[controllers addObject:one];
[controllers addObject:two];
[controllers addObject:three];
[self.navigationController setViewControllers:controllers animated:YES];
Esto se animará en tres sin que uno o dos sean visibles en el proceso.
Estoy tratando de insertar tres controladores de vista en el controlador de navegación.
[self.navigationController pushViewController:one animated:YES];
[self.navigationController pushViewController:two animated:YES];
[self.navigationController pushViewController:three animated:YES];
El comportamiento deseado es que la vista tres se mostrará, y cuando se presione el botón Atrás, irá a ver dos y luego a ver uno ...
Lo que realmente sucede es que la vista uno es visible y al presionar atrás se va a ver dos y luego nuevamente se va a ver uno. Es decir, se muestra la vista uno en lugar de la vista tres.
De manera muy extraña, mirar la matriz viewController del navigationController después de las llamadas anteriores muestra las entradas correctas, y al ver la propiedad visibleViewController
muestra que tiene la vista tres en ella ... aunque la vista es visible.
Si navego a una vista secundaria desde la vista visible (que se muestra en el lugar de la vista tres) y presiono hacia atrás desde esa vista secundaria ... va a la vista tres.
Parece que muestra la vista uno, pero sabe que está en la vista tres ...
Estoy completamente confundido ... alguna idea?
Jim
Para los dos primeros intentos, no pase el indicador animado como SÍ, configúrelo en NO:
[self.navigationController pushViewController:one animated: NO];
[self.navigationController pushViewController:two animated: NO];
[self.navigationController pushViewController:three animated: YES];
Esto te dará el efecto que deseas. De lo contrario, estás confundiendo el sistema de animación, ya que intenta animar tres vistas en el mismo espacio.