在演示或解散过程中尝试从视图控制器中解散
我有两个UIViewController
类,其中在FirstClass
我有一个UIButton
的login ,当用户点击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:
- 你忘了调用超级ViewController方法之一,如viewWillAppear,viewWillAppear等咨询UIViewController文档,看看你什么时候必须调用super。
- dismissModalViewControllerAnimated:方法被多次调用,如果您不止一次向UIButton添加目标,就会发生这种情况。
为了更好地理解这个问题,请粘贴两个视图控制器的代码。