Проблема отклоняя несколько модальных контроллеров представления

Я испытываю затруднения, заставляя мои модальные контроллеры представления отобразиться правильно. У меня есть родительский контроллер представления, который является делегатом к модальному представлению A. В модальном представлении я представляет модальное представление B и имеет делегата dimiss модальное представление A.

Когда модальное представление B появляется, это, кажется, отображается, но экран потускнел, и UI запирается, но приложение не отказывает. Я установил настройки анимации на НЕ, и я все еще получаю ту же проблему.

Порядок событий:

  1. Родительское шоу Представления Модальное Представление A
  2. Модальное Представление шоу Модальное Представление B в Модальном Представлении контроллер
  3. Родительское Представление отклоняет Модальное Представление в Модальном Представлении контроллер через делегацию
  4. Это - то, где мой UI зависает, я вижу Модальное Представление B, но не могу нажать на него или сделать что-либо
14
задан Sheehan Alam 19 March 2010 в 02:00
поделиться

2 ответа

Решено, если мой parentViewController действует как делегат. Вот мой приказ:

[parentView presentViewController:modalViewControllerA animated:YES]
[parentView dismissModalViewControllerAnimated:YES]
[parentView presentViewController:modalViewControllerB animated:YES]
//Modal B dismisses himself

В моем методе делегирования мне нужно было убедиться, что я отклонил модальное окно A перед тем, как представить модальное окно B

4
ответ дан 1 December 2019 в 09:12
поделиться

Контроллер модального представления должен иметь родительский контроллер представления для отображения. Если вы отклоните родительский контроллер представления (в вашем случае «модальное представление A»), поведение будет непредсказуемым.

Если вы уверены, что вложенные контроллеры модального представления - это то, что вам действительно нужно, вам нужно отклонить их в обратном порядке; подождите, пока вы не закончите с «B», затем отклоните «B», затем отклоните «A».

Если вам не нужен модальный стиль представления, лучше использовать UINavigationController для поддержки вашего стека контроллеров представления.

Обновление : вот как я бы изменил ваш порядок событий. Представлен в виде кода для ясности.

  1. [parentView presentViewController: modalViewControllerA анимированный: ДА]
  2. [modalViewControllerA presentViewController: modalViewControllerB анимированный: ДА]
  3. [ modalViewControllerA dismissModalViewControllerAnimated: ДА]
  4. [parentView dismissModalViewControllerAnimated: ДА]
4
ответ дан 1 December 2019 в 09:12
поделиться