我有一个 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),它似乎可以正常工作,但我不知道这是否是我应该接近的方式修复它。