

Swiftの画面遷移について

[code]

    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)
    
[/code]

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

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

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

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

[code]

    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)
    
[/code]

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

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


CC BY-SA 4.0
2018-05-20T09:43:52.217
44103
2018-05-20T09:43:52.217
28583
question
swift swift4
Swiftの画面遷移(コードのみ、アニメーションあり）とメモリリーク