如何在弹出视图控制器上做翻页动画?

问题描述:

我有一个翻转动画这是这样的:如何在弹出视图控制器上做翻页动画?

Picker *picker = [[Picker alloc] init]; 

      [self.navigationController pushViewController:picker animated:NO]; 

      [UIView animateWithDuration:0.5 
          animations:^{ 
           [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO]; 
           } 
          completion:^(BOOL finished){ 
          }]; 
      [picker release]; 

这完美的作品。但是,当我想要做popViewController回来,像这样:

[self.navigationController popViewControllerAnimated:NO]; 

    [UIView animateWithDuration:0.5 
        animations:^{ 

         [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO]; 
        } 
        completion:^(BOOL finished){ 
        }]; 

但这不起作用,只是回到没有动画的视图。

你试过popViewControllerAnimated动画结束了吗?

+0

这很好,谢谢。为了将来的参考,我没有把它完成,我把它放在那之前。 – Andrew 2011-03-30 18:10:32

+0

另外,我将它改为动画:YES来阻止它滞后。不知何故,这工作。 – Andrew 2011-03-30 18:15:52

+0

@Andrew你有没有想过为什么这项工作,如果放置在动画^ {},而不是在完成^()?我很高兴这种方法对我来说,但我真的很想明白为什么它会这样工作? – pnizzle 2012-07-23 06:24:05

将popViewController调用放入完成块中,因此它首先进行动画处理,然后弹出。