Ios 自定义退绕顺序

Ios 自定义退绕顺序,ios,objective-c,iphone,segue,uistoryboardsegue,Ios,Objective C,Iphone,Segue,Uistoryboardsegue,在我的项目中,我有一个视图控制器,它对屏幕上从左到右的滑动做出反应,执行一个自定义的序列,动画如下: -(void)perform { UIViewController *sourceViewController = (UIViewController*)[self sourceViewController]; UIViewController *destinationController = (UIViewController*)[self destinationViewCon

在我的项目中,我有一个视图控制器,它对屏幕上从左到右的滑动做出反应,执行一个自定义的序列,动画如下:

-(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;
    transition.subtype = kCATransitionFromLeft;

    [sourceViewController.navigationController.view.layer addAnimation:transition

    [sourceViewController.navigationController pushViewController:destinationController animated:NO];
}
基本上,这允许用户在聊天室界面和设置视图控制器之间滑动。目前,我已经用传统方法创建了一个“展开”序列,方法是控制从情节提要上的“设置”按钮拖动到“退出”按钮,并在聊天室视图控制器中实现此功能,然后从右向左滑动返回:

-(IBAction)unwindFromLeft:(UIStoryboardSegue *)seque {

}

这可以很好地返回到视图控制器。然而,我真正想要的是视图控制器设置从右侧滑入的动画,但是它从左侧滑入,就像正常的展开序列一样。因此,我的问题是,如何实现一个自定义动画来更改展开序列的执行方式,例如,使我要展开的视图控制器,从右向左滑入。

如果使用模式视图,则可以弹出视图,并以正确的动画方向弹出。不幸的是,我想在用户进入“设置”页面时维护导航栏,它会生成一些我希望保留在应用程序中的动画,有没有一种方法可以为“放松”序列创建一个自定义类,然后以我想要的方式制作动画?我添加了一个自定义的CATTransition,虽然很难看,但它现在已经完成了任务。