在我的项目中,我有一个视图控制器,它通过执行一个动画如此的自定义segue来响应屏幕上从左到右的滑动:
-(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 {
}
这可以很好地返回到视图控制器。然而我真正想要的是视图控制器从右侧滑入动画,但它从左侧滑入,就像正常的展开segue一样。因此,我的问题是,如何实现改变展开segue执行方式的自定义动画,例如:使我正在展开的视图控制器,从右向左滑入。