9

私は周りを見回しましたが、私が探していたものを正確に見つけられませんでした。

ビュー コントローラを押すときにフリップ アニメーションを取得する方法はありますか?

モーダルビューコントローラーを使用してアニメーションを変更できると読みましたが、モーダルビューのアニメーションは下から上にあり、それは私が探しているものではありません。どういうわけかフリップアニメーションを取得する方法はありますか?

4

4 に答える 4

50

このようなものはうまくいくはずです

[UIView beginAnimations:@"animation" context:nil];
[self.navigationController pushViewController: yourviewcontroller animated:NO]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO]; 
[UIView commitAnimations];

pushViewController を呼び出すときは、animate を NO に設定することを忘れないでください

于 2010-05-26T23:03:04.247 に答える
15

これも機能します..iOS 4.0 and greater

[UIView  transitionWithView:self.navigationController.view duration:0.8  options:UIViewAnimationOptionTransitionFlipFromLeft
                             animations:^(void) {
                                 BOOL oldState = [UIView areAnimationsEnabled];
                                 [UIView setAnimationsEnabled:NO];
                                 [self.navigationController pushViewController:viewController animated:YES];
                                 [UIView setAnimationsEnabled:oldState];
                             }
                             completion:nil];
于 2012-09-21T06:55:14.007 に答える
4
- (void)viewWillDisappear:(BOOL)animated {
[UIView beginAnimations:@"animation2" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration: 0.7];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO]; 
[UIView commitAnimations]; }

新しいviewcontrollerでは、ツールバーの戻るボタンが押されたときに(左にスライドするのではなく)同じようにフリップバックします-ここでアニメーションが有効になっていることを確認してください。たとえば、スタックをポップするカスタムボタンを作成する場合は、 :

- (void) backToPrevious: (id) sender 
{
    //[self.navigationController popViewControllerAnimated:YES];
    [self dismissModalViewControllerAnimated:YES];
}
于 2011-04-25T15:41:38.583 に答える
1

モーダルに表示されるビューコントローラの場合、プロパティを使用してアニメーションを変更できmodalTransitionStyleます。ちなみに、ナビゲーションコントローラーのプッシュアニメーションを変更する方法はありません(UINavigationControllerを最初から再構築する場合を除く)。

于 2010-03-24T10:21:58.587 に答える