2014-03-03 76 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