我有一個自定義UIViewController模式顯示。我叫它mainMenu
。dismissViewControllerAnimated:完成:發生即時除非我kludge它
它有它自己的可愛的小過渡動畫,它可以使其視圖從屏幕上滑落。當我想解僱它時,我想調用自定義動畫,然後在完成後實際解除它。這似乎應該工作:
- (void) dismissCustomViewController {
[mainMenu slideMenuPanelsAway];
[self dismissViewControllerAnimated:YES completion:nil];
}
但是,這使得視圖控制器瞬間消失之前,我看到自定義幻燈片的東西。
使視圖控制器等待,直到菜單消失之前消失的正確方法是什麼?
我試過一堆東西。我只找到一個途徑,使其工作:
- (void) dismissCustomViewController {
[mainMenu slideMenuPanelsAway];
[self performSelector:@selector(dismissController) withObject:nil
afterDelay: 2.0f];
}
(我編寫了一個名爲dismissController
只是爲了選擇更容易使用自定義的方法,它基本上只是調用[self dismissViewControllerAnimated:YES completion:nil];
)
這似乎只是可怕的kludgey要使用手動延遲設置,而不是在動畫完成時進行實際設置。有一個更好的方法,不是嗎?
您的動畫代碼在哪裏?如果你想在動畫完成時做些什麼,你必須把它放在那裏。 –
我認爲在某些情況下的確如此,但在這一點上似乎並不正確。事實上,如果我在開展動畫的方法結束時提出解僱,我會遇到同樣的問題:解僱立即發生,動畫從未見過。我確實將其作爲「一堆事物」之一。 –