para nivel desgaste como ciclos carga cambiar bateria app iphone objective-c ios uinavigationcontroller

iphone - nivel - Cómo acceder a la pila en UINavigationController



iphone no carga (3)

La matriz devuelta por la propiedad viewControllers es la pila. Se ordenan en la misma secuencia que se mostraron. el controlador en el índice 0 es el controlador con el que comenzó. El controlador que está mirando actualmente es el índice más alto. Dado que los índices se cuentan desde cero, el último índice del elemento será la cuenta (n) -1.

Ahora dices "vistas" en tu post. Hay una diferencia entre las vistas y los controladores de vista. Si está hablando de varias piezas que son visibles al mismo tiempo, entonces está hablando de vistas, no de controladores de vista. El controlador de navegación es para manejar múltiples controladores de vista. Si está tratando con vistas de las que desea acceder a las subvistas de la vista del controlador de vista myViewController.view.subviews Se ordenan de forma similar.

viewControllers

Los controladores de vista actualmente en la pila de navegación.

@property(nonatomic, copy) NSArray * viewControllers

Discusión

El controlador de vista raíz está en el índice 0 en la matriz, el controlador de vista posterior está en el índice n-2 y el controlador superior está en el índice n-1, donde n es el número de elementos en la matriz.

Asignar una nueva matriz de controladores de vista a esta propiedad es equivalente a llamar al método setViewControllers: animated: con el parámetro animado establecido en NO.

Estoy confundido sobre cómo acceder a la pila Tengo tres vistas en el controlador de navegación: controlador de vista de raíz, ubicación de prueba de sti, mapa de sti.

¿Cómo puedo acceder a la pila?


Suponiendo que quiere decir que su controlador de navegación tiene tres controladores de vista, debería poder acceder al controlador de navegación desde cualquiera de los tres controladores de vista que utilizan self.navigationController .

Entonces, si desea obtener el segundo controlador de vista en la pila, debe hacer:

UIViewController * viewController = [self.navigationController.viewControllers objectAtIndex:1];

Esto se supone que hay al menos dos controladores de vista en el controlador de navegación.


UINavigationControllers tiene una propiedad llamada viewControllers como se ha indicado anteriormente. Dado que se trata de una matriz de controladores de vista, hacer referencia a un controlador de vista específico en esta jerarquía no es diferente a acceder a cualquier otro objeto en una matriz.

UIViewController *theControllerYouWant = [self.navigationController.viewControllers objectAtIndex:(theIndexOfYourViewController)];

Además, consulte el artículo Controladores de navegación en la Biblioteca de desarrolladores de iOS, específicamente la sección llamada ''Modificar la pila de navegación''.