У меня есть UINavigationController, в котором я нажимаю контроллер представления со стилем представления UIModalPresentationPageSheet.
Из контроллера представления этого листа страницы я представляю контроллер представления со стилем UIModalPresentationFormSheet.
Когда пользователь нажимает кнопку «Готово» на листе формы, я хочу закрыть лист формы и лист страницы.
В действии на кнопку Готово:
-(IBAction)onDone:(id)sender
{
if(self->delegate && [self->delegate respondsToSelector:self->actionSelector])
{
[self->delegate performSelector:self->actionSelector withObject:[NSString stringWithString:self.textView.text]];
}
[self dismissViewControllerAnimated:YES completion:nil];
}
Делегат — это контроллер представления листа страницы, и в селекторе я закрываю лист страницы:
[self dismissViewControllerAnimated:YES completion:nil];
Когда я запускаю его, я получаю:
Warning: Attempt to dismiss from view controller <UINavigationController: 0xa9381d0> while a presentation or dismiss is in progress!
Я понимаю, почему это происходит, потому что селектор вызывается до того, как представление формы будет закрыто, но я не знаю, как это лучше всего сделать.
Я попытался удалить отклонение в onDone и вызвать отклонение для обоих в вызове селектора (с анимированным: NO для листа формы), и, похоже, он работает, но я не знаю, подходит ли мне это. исправить это.