2015-06-20 45 views
2

我写了下面的代码,从一个到另一个视图控制器从右到左的过渡。 但新的视图控制器只是出现没有动画。自定义塞格与CATransition

override func perform() { 

var sourceViewController = self.sourceViewController as! UIViewController 
var destinationViewController = self.destinationViewController as! UIViewController 

var transition: CATransition = CATransition() 

transition.duration = 1.25 
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) 
transition.type = kCATransitionPush 
transition.subtype = kCATransitionFromRight 

destinationViewController.view.layer.addAnimation(transition, forKey: "kCATransition") 
sourceViewController.presentViewController(destinationViewController, animated: false, completion: nil) 

} 

我只是找不到任何错误。任何人都可以找到?我错过了一些简单的东西吗

预先感谢您

回答

1

改变这样的代码:

destinationViewController.view.layer.addAnimation(transition, forKey: "kCATransition") 

到新的一个:

destinationViewController.view.window!.layer.addAnimation(transition, forKey: "kCATransition")