Не можете ли вы вызвать dismissModalViewController подряд? - PullRequest
1 голос
/ 26 января 2012

У меня есть модальный контроллер вида, в который пользователь вводит информацию.Когда они нажимают кнопку отправки, эта информация отправляется на сервер, и контроллер модального представления отклоняется.

Однако, если пользователь не вошел в систему, при нажатии кнопки «Отправить» он загружает экран входа (в качестве другого контроллера модального представления).После входа в систему контроллер представления входа отклоняется, их информация отправляется на сервер, а контроллер представления отклоняется.Проблема в том, что контроллер представления, в который они вводили информацию, остается на экране.

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

Кто-нибудь еще видел это?

Ответы [ 2 ]

1 голос
/ 26 января 2012

Я определил, что проблема вызвана тем, что первый модал, который был отменен (контроллер входа в систему), не исчезнет, ​​прежде чем я отклоню второй модал (контроллер представления ввода данных).Когда происходит второй вызов dismiss, контроллер входа в систему все еще считается контроллером вида сверху, поэтому со вторым VC ничего не происходит.

0 голосов
/ 26 января 2012

Это происходит, когда вы просто представляете новый modalView от предыдущего контроллера. Вы не отказываетесь от предыдущего контроллера.

вам нужно удалить контроллер, с которого вы запускаете контроллер входа в систему. вам нужно, чтобы указатель на ваш «информационный» контроллер был доступен, и при успешной отправке при входе в систему вам необходимо отключить информационный контроллер, как и в LoginController или appDelegate (везде, где вы можете сохранить указатель доступным):

[info dismissModalViewControllerAnimated:NO];
...