Swiftの画面遷移について

let animator:UIViewControllerTransitioningDelegate = CustomAnimate(movePattern: animation)
let storyboar: UIStoryboard = UIStoryboard(name: storyboardName, bundle: nil)
let vs = storyboar.instantiateViewController(withIdentifier: idName)
vs.transitioningDelegate = animator as UIViewControllerTransitioningDelegate
self.present(vs, animated: animateBool, completion:nil)

現状ではこのような手法で画面遷移を行なっています。
また、画面遷移時のアニメーションは以下のサイトを参考にしております。

"UIViewControllerAnimatedTransitioningを使って画面遷移アニメーションを作る"
https://qiita.com/kitoko552/items/4c0e411ff6224090db87

しかし、この方法だけで行き来した場合、メモリが消去されないためメモリリークが発生することが分かっています。
普段であればdismissを使った画面遷移で対応するのですが、dismissを使った場合、画面遷移アニメーションをどこに挟めば良いのかが分かりません。

CATransitionを使えばアニメーションは実装できましたが、UIViewControllerAnimatedTransitioningを使って画面遷移を行うにはどうしたら良いでしょうか。
以下はdismissとCATransitionを使った例になります。

let transition: CATransition = CATransition()
transition.duration = 0.5
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
self.view.window!.layer.add(transition, forKey: nil)        
self.dismiss(animated: false, completion: nil)

メモリリークを解決することがミッションのため
①presentを使って画面遷移前のメモリを消去する方法
②dismissを使ってカスタムアニメーションを実装する方法
のどちらかについてご回答して頂けましたら大変助かります。

勿論、もっと良いやり方がありましたらご教授願います。よろしくお願いします。