現在、他のView Controllerを提示するView Controllerがあります。私がやろうとしているのは、View Controller をプッシュするときに使用されるデフォルトのアニメーションを再作成することです。
私の現在のアプローチは次のとおりです。
FirstViewController
:
@IBAction private func push(sender: AnyObject) {
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("SecondViewController")
let transition = CATransition()
transition.duration = 0.5
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.type = kCATransitionPush
transition.subtype = kCATransitionFromRight
view.window?.layer.addAnimation(transition, forKey: kCATransition)
presentViewController(vc, animated: false, completion: nil)
}
SecondViewController
:
@IBAction private func pop(sender: AnyObject) {
let transition = CATransition()
transition.duration = 0.5
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.type = kCATransitionPush
transition.subtype = kCATransitionFromLeft
view.window?.layer.addAnimation(transition, forKey: kCATransition)
dismissViewControllerAnimated(false, completion: nil)
}
それはほとんど機能していますが、私は奇妙な動作をしています.View Controller間を移行するときに、一種の黒い画面/フラッシュが発生しています。すでに変更を試みwindow.backgroundColor
ましたが、問題は解決していません。
よろしくお願いします0_0...