Swift DissViewController/展开序列/(自定义)序列。。。哪一个,什么时候,为什么?

Swift DissViewController/展开序列/(自定义)序列。。。哪一个,什么时候,为什么?,swift,memory-leaks,segue,uistoryboardsegue,unwind-segue,Swift,Memory Leaks,Segue,Uistoryboardsegue,Unwind Segue,我刚刚完成了我的第一个应用程序。我正要提交它时发现了一个10MB的内存泄漏。据我所知,这是由我使用的序列引起的 据我所知,目前我的应用程序每次执行segue时都会生成一个新视图。我读了很多帖子,结果弄糊涂了。 我应该使用DissViewController吗?放松赛格 对于放松阶段来说真的很有帮助。但从用户界面的角度来看,我喜欢当前的performsguewithidentifier解决方案,因为我制作了漂亮的水平滑动分段。有没有一种方法可以在使用展开序列时自定义转换 我希望有可能简单地杀死自定

我刚刚完成了我的第一个应用程序。我正要提交它时发现了一个10MB的内存泄漏。据我所知,这是由我使用的序列引起的

据我所知,目前我的应用程序每次执行segue时都会生成一个新视图。我读了很多帖子,结果弄糊涂了。 我应该使用DissViewController吗?放松赛格

对于放松阶段来说真的很有帮助。但从用户界面的角度来看,我喜欢当前的performsguewithidentifier解决方案,因为我制作了漂亮的水平滑动分段。有没有一种方法可以在使用展开序列时自定义转换

我希望有可能简单地杀死自定义segue代码中的前一个ViewController

ps:以下是其中一个序列的代码:

import UIKit

class FirstCustomSegueUnwind: UIStoryboardSegue {
override func perform() {
    var firstVCView = self.sourceViewController.view as UIView!
    var secondVCView = self.destinationViewController.view as UIView!


    let screenWidth = UIScreen.mainScreen().bounds.size.width
    let screenHeight = UIScreen.mainScreen().bounds.size.height

    secondVCView.frame = CGRectMake(-screenWidth, 0.0, screenWidth, screenHeight)

    let window = UIApplication.sharedApplication().keyWindow
    window?.insertSubview(secondVCView, aboveSubview: firstVCView)

    UIView.animateWithDuration(0.4, animations: { () -> Void in
        firstVCView.frame = CGRectOffset(firstVCView.frame, screenWidth, 0.0)
        secondVCView.frame = CGRectOffset(secondVCView.frame, screenWidth, 0.0)


        }) { (Finished) -> Void in
            self.sourceViewController.presentViewController(self.destinationViewController as! UIViewController, animated: false, completion: nil)

    }


}
}

只要你没有指向UIViewController的指针,你就可以不使用UIViewController。你好@Schemetral,谢谢你的评论。你的意思是我可以使用普通的segue,还是说使用dismissViewController和unwind segue没有区别?还有,你所说的指针是什么意思?在某些情况下,我会将值传递给这个新的viewController,即使大多数情况下该值为nill。展开序列是dismissViewController,但它会将数据传递回主控制器。dismissViewController只执行展开序列而不传回数据。如果你想做自定义动画,我建议你阅读更好的使用自定义segue的方法,因为你刚刚粘贴的代码是一个可怕的和黑客的自定义segue解决方案。