2010-08-21 10 views
5

Anulo -orientaciónCambio en mi ViewController principal para presionar ModalViewController A cuando el dispositivo está en modo apaisado. Cuando se vuelve a colocar en modo vertical, ModalViewController A se descarta. Sin embargo, hay otros casos (después del toque del botón) donde se muestran ModalViewControllers B, C o D. Cuando se muestran, si el dispositivo se gira hacia el paisaje y se vuelve hacia atrás, ModalViewController B C o D se descarta, de manera inapropiada.¿Cómo puedo saber si se está mostrando ModalViewController?

Puedo verificar que -orientationChanged en mi ViewController principal se envíe un mensaje incluso cuando se muestre ModalViewController. ¿Hay alguna condición que pueda agregar a mi método -orientationChanged para eludir ese código cuando se muestre ModalViewController B C o D?

¡Gracias!

Respuesta

6

Puede verificar si la propiedad modalViewController en su viewcontroller principal es uno de sus controladores de visualización.

+2

Gracias, esto funcionó. Usé el condicional: if ([self.modalViewController isMemberOfClass: [UINavigationController class]]) ... – ed94133

1

Puede usar este código para encontrar cuál es el último ModalViewController.

UIViewController *leafController = self; 
while(true) { 
    if (leafController.modalViewController) { 
     leafController = leafController.modalViewController; 
     continue; 
    } 
    break; 
} 
[leafController presentModalViewController:showController animated:YES]; 
Cuestiones relacionadas