在演示或解散过程中尝试从视图控制器中解散

我有两个UIViewController类,其中在FirstClass我有一个UIButtonlogin ,当用户点击button,我会显示SecondClass …为此,我已经做了,

 SecondClass *index = [[SecondClass alloc] init]; [self presentModalViewController:index animated:YES]; 

在SecondClass中,我有一个注销button,它将redirect到FirstClass ,因为我已经完成了,

 [self dismissModalViewControllerAnimated:YES]; 

当我按SecondClass中的注销button时,我收到警告消息

 **Attempt to dismiss from view controller <FirstClass: 0e39w88e160> while a presentation or dismiss is in progress!** 

这里有什么问题..

添加了iOS 6和iOS 6之前的答案:

iOS 5.0及更高版本

注销时,请在解雇之前添加此检查:

 if (![self.presentedViewController isBeingDismissed]) { [self dismissModalViewControllerAnimated:YES completion:nil]; } 

iOS 4.X和更less

解雇前添加此项检查:

 if (![[self modalViewController] isBeingDismissed]) { [self dismissModalViewControllerAnimated:YES]; } 

在注销处呼叫这些行,然后检查:

 if (![[self modalViewController] isBeingDismissed]) { [self dismissModalViewControllerAnimated:YES]; } 

有很多事情可能会导致这个,这里有一些select:

  1. 你忘了调用超级ViewController方法之一,如viewWillAppear,viewWillAppear等咨询UIViewController文档,看看你什么时候必须调用super。
  2. dismissModalViewControllerAnimated:方法被多次调用,如果您不止一次向UIButton添加目标,就会发生这种情况。

为了更好地理解这个问题,请粘贴两个视图控制器的代码。