Как я могу узнать, отображается ли ModalViewController? - PullRequest
5 голосов
/ 22 августа 2010

Я переопределяю -orientationChanged в моем главном ViewController, чтобы нажать ModalViewController A, когда устройство находится в альбомном режиме.При возврате в портретный режим ModalViewController A закрывается.Однако в других случаях (после касания кнопок) отображаются ModalViewControllers B, C или D.Когда они отображаются, если устройство перевернуто и повернуто назад, ModalViewController BC или D. отклоняется, неуместно.

Я могу убедиться, что -orientationChanged на моем главном ViewController обменивается сообщениями, даже когда отображается ModalViewController.Есть ли условие, которое я могу добавить в мой метод -orientationChanged, чтобы обойти этот код, когда отображается ModalViewController BC или D?

Спасибо!

Ответы [ 2 ]

6 голосов
/ 22 августа 2010

Вы можете проверить, является ли свойство modalViewController в вашем основном viewcontroller одним из ваших контроллеров представления.

1 голос
/ 25 декабря 2011

Вы можете использовать этот код, чтобы найти последний ModalViewController.

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