ユーザーが右から左にスワイプして次のビューなどに移動し、ユーザーが左から右にスワイプして戻る単純なプロジェクト(ストーリーボード)を試しています。スワイプに追従する遷移を実現したい (L-->R または R-->L)。
私はこれを見つけました:
-(void)perform {
UIViewController *sourceViewController = (UIViewController*)[self sourceViewController];
UIViewController *destinationController = (UIViewController*)[self destinationViewController];
CATransition* transition = [CATransition animation];
transition.duration = .25;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush; //kCATransitionMoveIn; //, kCATransitionPush, kCATransitionReveal, kCATransitionFade
transition.subtype = kCATransitionFromLeft; //kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom
[sourceViewController.navigationController.view.layer addAnimation:transition
forKey:kCATransition];
[sourceViewController.navigationController pushViewController:destinationController animated:NO];
}
しかし、これはやるべきことをしていないようです。
説明:
私が横向きの場合(私のプロジェクトは横向きでのみ機能します)、ホームボタンが左側にある場合、アニメーションはTOPから来ます!!! 私が横向きでホームボタンが右側にあるとき、アニメーションは下から来ます!!!
左からと指定していますが。もう1つのことは、異なる風景を使用すると方向が変わることです(左または右のホームボタン)。
なぜこれが起こっているのですか?