2010-02-08 2 views
2

В моем приложении iPhone у меня есть два контроллера представления, которые я хочу представить модально. Существует корневой контроллер, который представляет первый (скажем, A), а затем A представляет второй (скажем, B). Затем я хочу уволить как A, так и B сразу, что я делаю, вызывая метод dismiss… от корневого контроллера. В документации указано, что в этом случае весь стек контроллеров уволен, как A, так и B. Оба контроллера действительно исчезают с экрана, но когда я проверяю A, его свойство modalViewController все еще установлено, и когда я позже попробую еще раз представить B от А ничего не происходит. Я решил эту ситуацию, вызвав dismissModalViewControllerAnimated:NO на A перед тем, как представить A на экране, но это взломать, а не настоящее решение. Что происходит, что я делаю неправильно?Увольнение нескольких модальных контроллеров

ответ

1

Хм. В этой ситуации у меня не было проблем.

Я реализовал это с помощью делегата и протокола, просто метод rejectMe: в родителе, который обрабатывал увольнение, и переменную в ребёнке, чтобы указать на родителя. Когда root настроил A, он сказал A, что корень был его делегатом; То же самое, когда A настроено B.

Когда B было сделано, оно отправлено [делегат отклонил: сам]. Ответ: «Уволен Б»: уволен Б без единого ответа, затем отправлен [делегат увольняюсь: я]. Корень увольняет: затем уволен. Видимым эффектом было то, что B уступал место правилу.

Я могу извлечь источник из моего git repo, если потребуется. Я перешел к другой схеме, когда рабочий процесс этого приложения стал более сложным.

+0

Спрашивая, что вы выкапываете этот источник, у меня также возникают проблемы с этим. –

Смежные вопросы