2016-02-02 35 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 

    })