2015-06-20 47 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")