如何在弹出视图控制器时进行翻转动画?

3

我有一个翻转动画,效果如下:

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){
                     }];

但是这并不起作用,只是返回到视图而没有动画效果。
2个回答

6

你尝试过在动画结束调用popViewControllerAnimated吗?


这个完美地运行了,谢谢。以后参考一下,我把它放在完成之前的那一行。 - Andrew
另外,我将其更改为animated:YES以防止它出现滞后。不知何故,这起作用了。 - Andrew
@Andrew,你搞清楚为什么这个放在animations^{}里面可以运行而放在completion^()里面不能运行吗?我很高兴对于我来说这种方法可行,但我真的想知道为什么会这样? - pnizzle

0
将popViewController调用放在完成块内,这样它就会先执行动画,然后再弹出。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接