我想在使UIViewController消失之前使用動畫隱藏導航欄。因此,我已經實現了以下內容:如何等待動畫在viewDidDisappear中完成?
-(void) viewWillDisappear:(BOOL) animated {
[UIView transitionWithView:self.view
duration:UINavigationControllerHideShowBarDuration
options:UIViewAnimationCurveEaseOut
animations:^{
[self.navigationController setNavigationBarHidden:YES];
}
completion:^(BOOL finished){
NSLog(@"animation finished");
}];
[super viewWillDisappear:animated];
}
的問題是,viewWillDisappear將繼續執行,就回到和整個視圖會消失的動畫完成之前。如何在完成動畫之前停止返回方法(其中「動畫完成」已打印)。
您不能爲此設置動畫效果。也許你正在尋找'setNavigationBarHidden:animated:'方法呢? – 2012-01-30 22:04:13
我不想使用'setNavigationBarHidden:animated:',因爲它在iOS 4(向左滑動)和iOS 5(向頂部滑動)方面有不同的動畫效果。無論如何,這並不重要,因爲在viewWillDisappear塊中放置'setNavigationBarHidden:animated:'仍然意味着該方法在動畫完成之前返回。我認爲這裏可能需要兩個線程? – 2012-01-30 22:22:51