2

I can "curl up" a view controller with this code:

[UIView beginAnimations:@"animation" context:nil];
[self.navigationController pushViewController:page animated:NO];
[UIView setAnimationDuration:1];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.navigationController.view cache:NO]; 
[UIView commitAnimations];

but I can't curl down the last page like this:

[UIView beginAnimations:@"animation" context:nil];
[self.navigationController popViewControllerAnimated:NO];
[UIView setAnimationDuration:1];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.navigationController.view cache:NO]; 
[UIView commitAnimations];

any idea why not? I just really want to "reverse" the animation (as if a sticker has been peeled off to show the 'push'ed view controller and stuck back on when they click a button).

Thanks

4

2 に答える 2

4

わかりました、私の古い答えは完全に間違っていました...問題は、遷移ビューを設定する前にView Controllerをポップしていることです。コードを次のように変更した場合:

[UIView beginAnimations:@"animation" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.navigationController.view cache:NO]; 
[self.navigationController popViewControllerAnimated:NO];
[UIView commitAnimations];

それは正常に動作します

于 2010-09-13T12:32:21.757 に答える
1

OpenGL や多くの複雑な CoreAnimation プロセスを使用すると、できると思いますが、そのようなことを行うのは非常に面倒です。あなたに役立つかもしれない何か: CoreAnimation だけで書かれた簡単な本めくりアプリケーション

于 2010-09-13T11:20:10.510 に答える