Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как узнать, отображается ли ModalViewController?

Автор вопроса: ed94133Ответов: 2

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

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

Благодарю вас!

iphoneuiviewcontrollermodalviewcontroller

Ответы

Ответ 1 · рейтинг 6 · Elfred

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

Ответ 2 · рейтинг 1 · idearibosome

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы