Я испытываю затруднения, заставляя мои модальные контроллеры представления отобразиться правильно. У меня есть родительский контроллер представления, который является делегатом к модальному представлению A. В модальном представлении я представляет модальное представление B и имеет делегата dimiss модальное представление A.
Когда модальное представление B появляется, это, кажется, отображается, но экран потускнел, и UI запирается, но приложение не отказывает. Я установил настройки анимации на НЕ, и я все еще получаю ту же проблему.
Порядок событий:
Решено, если мой parentViewController действует как делегат. Вот мой приказ:
[parentView presentViewController:modalViewControllerA animated:YES]
[parentView dismissModalViewControllerAnimated:YES]
[parentView presentViewController:modalViewControllerB animated:YES]
//Modal B dismisses himself
В моем методе делегирования мне нужно было убедиться, что я отклонил модальное окно A перед тем, как представить модальное окно B
Контроллер модального представления должен иметь родительский контроллер представления для отображения. Если вы отклоните родительский контроллер представления (в вашем случае «модальное представление A»), поведение будет непредсказуемым.
Если вы уверены, что вложенные контроллеры модального представления - это то, что вам действительно нужно, вам нужно отклонить их в обратном порядке; подождите, пока вы не закончите с «B», затем отклоните «B», затем отклоните «A».
Если вам не нужен модальный стиль представления, лучше использовать UINavigationController для поддержки вашего стека контроллеров представления.
Обновление : вот как я бы изменил ваш порядок событий. Представлен в виде кода для ясности.
[parentView
presentViewController: modalViewControllerA
анимированный: ДА]
[modalViewControllerA
presentViewController: modalViewControllerB
анимированный: ДА]
[ modalViewControllerA
dismissModalViewControllerAnimated: ДА]
[parentView
dismissModalViewControllerAnimated: ДА]