私はそのようなコードを使用して新しいビューを提示していますが、それは良いことでも悪いことでもありません。現在、デフォルトのアニメーションは下から上にビューを表示していますが、右から左にアニメーション化(フライイン)したいのですが、デフォルトのアニメーションタイプを変更することはできますか?ありがとう。
[self presentModalViewController:navController animated:animated];
次のように、スライドアップアニメーションを無効にできます。
[self presentModalViewController:navController animated:NO];
次に、独自のアニメーションコードを提供できます。
navController.view.frame = CGRectMake(320, 0, navController.view.frame.size.width, navController.view.frame.size.height);
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
navController.view.frame = CGRectMake(0, 0, navController.view.frame.size.width, navController.view.frame.size.height);
[UIView commitAnimations];
この例では、スムーズなスピードカーブで右からの「フライイン」が得られます。
もう1つの方法は、ナビゲーションコントローラーで右から組み込みのスライドインを使用することです。
[self.navigationController pushViewController:navController animated:YES];
これでは、top-viewcontrollerがUINavigationControllerである必要があり、そのrootcontrollerがviewcontrollerである必要があります。次に、他のビューコントローラをプッシュできます。
私はこれを行いました、そしてそれは私のために働いています:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.6];
[UIView setAnimationDelegate:self];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.View2.superview cache:YES];
[self.View2 removeFromSuperview];
[self performSelector:@selector(replaceViews2) withObject:nil afterDelay:0.6];
[UIView commitAnimations];