私は同じ問題に遭遇し、うまくいけば解決策を見つけました。
カスタム セグエを使用して元に戻しました。これが私のコードですFlipLeftSegue
@implementation FlipLeftSegue
- (void)perform
{
UIViewController *src = (UIViewController *) self.sourceViewController;
UIViewController *dst = (UIViewController *) self.destinationViewController;
[UIView beginAnimations:@"LeftFlip" context:nil];
[UIView setAnimationDuration:0.8];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:src.view.superview cache:YES];
[UIView commitAnimations];
[src presentViewController:dst animated:NO completion:nil];
}
@end
このソリューションで私が見つけた唯一の問題はviewDidAppear
、アニメーションの開始時にメソッドがすぐに呼び出されることです。通常のセグエでは、アニメーションの後に呼び出されます。