2014-03-03 61 views
0

有没有办法取消关闭动画视图然后关闭没有动画的视图?在应用开始关闭动画后关闭视图但不动画

所以这是它是怎么回事: 在我的iPad应用程序,我有一个根控制器呈现设置视图控制器。无论是由用户呈现/解雇,设置视图都随着动画出现/消失。

但是,有一种情况是用户被踢出应用程序,应用程序应显示登录视图。因此,如果rootViewContoller有presentedViewController(如上述设置查看),我做到以下几点:

[rootViewController dismissViewControllerAnimated:NO completion:^{ 
    [rootViewController presentViewController:logInViewController animated:NO completion:NULL]; 
    }]; 

现在的问题是,当用户关闭设置视图控制器的应用程序踢用户从之前难得一遇。当应用了上面的代码,因为设置视图已经被解雇程序抛出一个警告

"Attempt to dismiss from view controller <UINavigationController:> while a presentation or dismiss is in progress!"

和代码不能运行,它在结果,在日志中的观点并没有提出之后。

我尝试过的一种方法是等到动画解散完成并执行presentViewController:animated:completion:with delay(with any time frame)。这是有效的,但我不太喜欢这种方法,因为“任意时间范围”不能保证一直工作(或者如果我做得太长,那么用户将不得不等待那个时间)。而且我也不喜欢使用NSInvocation的代码非常复杂。

所以我想知道是否有一种方法可以强制忽略视频(没有动画),而这些视频正在被动画解散?

回答

0

为您的登录视图使用单独的UIWindow,并将其设为关键窗口。完成后,您可以切换回另一个窗口,在这种情况下,Settings(设置)屏幕仍然可见。通常,当我使用应用程序时,如果我做了某些事情,请离开应用程序并返回,我希望“某些事物”仍然存在。我认为这正是这种用例。

+0

好主意!谢谢=) – amor0624