Попытка отклонить из контроллера просмотра, пока выполняется презентация или увольнение
У меня есть TWO UIViewController
классы, где в FirstClass
у меня есть UIButton
для Вход, когда пользователь нажимает кнопку, я покажу SecondClass
... Для этого я сделали,
SecondClass *index = [[SecondClass alloc] init];
[self presentModalViewController:index animated:YES];
В SecondClass у меня есть кнопка logout, которая будет перенаправлена на FirstClass, для этого я сделал,
[self dismissModalViewControllerAnimated:YES];
Когда я нажимаю кнопку "Выход" в SecondClass, я получаю сообщение msg
**Attempt to dismiss from view controller <FirstClass: 0e39w88e160> while a presentation or dismiss is in progress!**
В чем проблема здесь.
Ответы
Ответ 1
Добавлены ответы iOS 6 и pre-iOS 6:
iOS 5.0 и более поздние версии
Когда вы выходите из системы, добавьте эту проверку перед увольнением:
if (![self.presentedViewController isBeingDismissed])
{
[self dismissModalViewControllerAnimated:YES completion:nil];
}
iOS 4.X и менее
Добавьте эту проверку перед увольнением:
if (![[self modalViewController] isBeingDismissed])
{
[self dismissModalViewControllerAnimated:YES];
}
Ответ 2
Вызовите эти строки, где вы выходите из системы, а затем проверьте:
if (![[self modalViewController] isBeingDismissed])
{
[self dismissModalViewControllerAnimated:YES];
}
Ответ 3
Есть много вещей, которые могут вызвать это, вот несколько вариантов:
- Вы забыли позвонить супер по одному из методов ViewController, таких как viewWillAppear, viewWillAppear и т.д. Обратитесь к документации UIViewController, чтобы узнать, когда вам нужно позвонить супер.
- Метод rejectModalViewControllerAnimated: вызывается более одного раза, это может произойти, если вы добавили цель в UIButton более одного раза.
Чтобы лучше понять проблему, полностью вставьте код обоих контроллеров представления.