Плохая анимация при отклонении модального UIImagePickerController - PullRequest
2 голосов
/ 05 июля 2011

У меня есть UIViewController (A), который модально представляет второй контроллер вида (B). Затем этот контроллер второго вида модально представляет UIImagePickerController (IP). По сути, у меня есть стек из 2 контроллеров модального представления.

(A) --modally presents--> (B) --modally presents--> (IP)

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

[self dismissModalViewControllerAnimated:YES];

Проблема с анимацией. При отклонении модального стека, подобного этому, видимый в настоящее время вид должен соскользнуть с нижней части экрана, открывая вновь видимый вид. Поэтому в этом случае я ожидаю, что (IP) соскользнет с нижней части экрана, открывая вид для (A).

Однако на самом деле происходит следующее: представление выбора изображений просто исчезает, немедленно раскрывает представление для (A), и только анимированная панель навигации находится в нижней части экрана. Строка состояния также остается черной полупрозрачной вместо перехода обратно в стандартную серую; похоже, это указывает на то, что средство выбора изображений обычно выполняет какую-то «очистку», которая не выполняется, когда она отбрасывается как часть модального стека.

Если я заменю средство выбора изображений другим универсальным контроллером представления, анимация будет работать нормально. Если (B) отклоняется (B), анимация также работает нормально. Кажется, проблема возникает только при отклонении нескольких контроллеров модального представления, содержащих UIImagePickerController.

Кто-нибудь видел это раньше? Есть идеи, что я могу делать не так или как обойти это?

1 Ответ

0 голосов
/ 05 июля 2011

К сожалению, метод dismissModalViewControllerAnimated не работает точно так, как вы ожидаете (по крайней мере, визуально).Чтобы достичь того, что вы хотите, вам нужно отменить оба модальных контроллера представления подряд, первый не анимированный и второй анимированный, как описано, например, здесь .

...