我正在使用導航控制器,並試圖在新View Controller推送之前運行動畫。爲此,我從UINavigationController委託中捕獲事件,並運行動畫。也就是說,顯然iOS動畫是異步運行的,所以方法返回,我的動畫和標準的推動動畫同時運行。有關如何解決這個問題的任何想法?在動畫運行時暫停執行iOS應用程序的主線程
情況是這樣的:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if (animated)
{
[UIView animateWithDuration:kGFDefaultAnimationDuration
delay:0.0
options:UIViewAnimationCurveEaseOut | UIViewAnimationOptionAllowUserInteraction
animations:^{
// Set up animations here...
}
completion:^(BOOL finished) {
}];
}
}
因此,換句話說,我想從完成塊返回navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
。
在推動新的視圖控制器之前做動畫怎麼樣?動畫完成後,在完成塊中,您可以進行推送。 – iDev
@ACB我將如何觸發初始事件來啓動動畫?我試着重載'pushViewController:animated:'方法,它工作正常。問題是我想要一個與'popViewControllerAnimated:'並行的效果,而且這個效果要難得多。 – Herm