2016-02-02 38 views
0

正在开发一个Objective-C视频项目。在视频播放器上,我有一个按钮,将用户返回到菜单屏幕。如何更改dismissViewController转换方向?

在我PlayerViewController.m,我有:

- (IBAction)unloadPlayer:(id)sender 
{ 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

它的工作原理,但它从上往下推屏幕。我想要做的是从左向右推进。如何才能做到这一点?

谢谢!

+0

写你自己的赛格瑞是一个解决方案。 – meth

+0

当你提出它时,是不是从底部进来?如果是这样,这样看起来不会很奇怪吗?如果你想让它被正确解雇,你可以将演示文稿改为非模态推送,并且它会从右侧进入(并且自动消除你想要的方式) –

回答

2

您可以在关闭视图控制器的同时使用自定义动画。 这将解决您的问题。

CATransition *transition = [CATransition animation]; 
transition.duration = 0.3; 
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
transition.type = kCATransitionPush; 
transition.subtype = kCATransitionFromLeft; 
[self.view.window.layer addAnimation:transition forKey:nil]; 
[self dismissViewControllerAnimated:NO completion:nil]; 
+0

这里是你要找的东西[链接](http://stackoverflow.com/questions/11412467/dismissmodalviewcontroller-with-transition-left-toright) –

+0

谢谢,我也在寻找这样的解决方案。 –

0

斯威夫特2:

let transition: CATransition = CATransition() 
transition.duration = 0.3 
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) 
transition.type = kCATransitionPush 
transition.subtype = kCATransitionFromLeft 
self.view.window!.layer.addAnimation(transition, forKey: nil) 
self.dismissViewControllerAnimated(false, completion: { _ in }) 

但我建议使用此:

UIView.transitionWithView(self.view, duration: 0.325, options: UIViewAnimationOptions.CurveEaseInOut, animations: { 

    // animation 

    }, completion: { (finished: Bool) ->() in 

    // completion 

    })