ナビゲーションコントローラーを使用しておらず、ストーリーボードを使用しています。
セグエを使用している1つのビューコントローラーから別のビューコントローラーに移行する必要があります。
次に、segueスタイルをCustomに設定し、対応するクラスでperform
メソッドをオーバーライドします。
-(void)perform
{
UIViewController *sourceViewController = [self sourceViewController];
UIViewController *destinationViewController = [self destinationViewController];
CATransition *transition = [CATransition animation];
transition.duration = 0.25;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromLeft;
[sourceViewController.view.layer addAnimation:transition forKey:kCATransition];animated:NO];
[sourceViewController presentViewController:destinationViewController animated:YES completion:nil];
}
ただし、宛先ビューコントローラのプロパティもありますmodalTransitionStyle
。
したがって、現在、ソースVCはプッシュされているかのように左から右に移動しますが、宛先ViewControllerによってプッシュされていることを示したいと思います。modalTransitionStyle
代わりに、宛先VCはデフォルトで「カバー垂直」を実行します。プロパティで使用できるオプションは4つだけで、どれも機能していません。
それを機能させるには、このアニメーションをいくつかのスーパービューレイヤーに追加する必要があります。これは、両方のビューコントローラーが表示されているスーパービューです。しかし、そのような見方はありません。