我刚刚完成了我的第一个应用。当我发现(10MB)内存泄漏时,我正准备提交它。根据{{3}},它是由我使用的segues引起的。
据我所知,目前我的应用程序每次执行segue时都会生成一个新视图。我一直在阅读很多帖子,最终让我感到困惑。 我应该使用dissmissViewController吗?放松冥想?
this post对于放松segue非常有帮助。但是从UI的角度来看,我喜欢当前的performSegueWithIdentifier解决方案,因为我已经制作了漂亮的水平滑动段。有没有办法在使用展开segue时自定义转换?
我希望有可能在自定义segue代码中简单地“杀死”以前的ViewController ......
ps:以下是其中一个segue的代码:
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)
}
}
}