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

Har*_*ran 16 iphone objective-c uiviewcontroller ios

我有两个UIViewController类,在FirstClass我有一个UIButton用于登录,当用户点击按钮时,我将显示SecondClass...为此我做了,

SecondClass *index = [[SecondClass alloc] init];
[self presentModalViewController:index animated:YES];
Run Code Online (Sandbox Code Playgroud)

在SecondClass中,我有一个注销按钮,它会重定向到FirstClass,因为我已经完成了,

[self dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

当我按下SecondClass中的Logout按钮时,我收到警告信息

**Attempt to dismiss from view controller <FirstClass: 0e39w88e160> while a presentation or dismiss is in progress!**
Run Code Online (Sandbox Code Playgroud)

这里有什么问题..

Kev*_*ych 31

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

iOS 5.0及更高版本

当您注销时,请在解除之前添加此检查:

if (![self.presentedViewController isBeingDismissed])
{
    [self dismissModalViewControllerAnimated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

iOS 4.X以及更少

在解雇之前添加此检查:

if (![[self modalViewController] isBeingDismissed])
{
    [self dismissModalViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)


Vis*_*hal 3

在您注销的地方调用这些行,然后检查:

if (![[self modalViewController] isBeingDismissed])
{
   [self dismissModalViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)