我目前正在尝试实现传统的从右到左的搭配和从左到右的放松搭配。
对于从右到左的搜索,我遵循了答案here,并且我尝试对放松的搜索执行相同的操作。直到我查看了内存使用情况之后,一切似乎都可以正常工作,每次我进行segue和unsease segue时,内存使用量都在增加。
我可以看到它的来源,例如在放开镜头时,我正在插入目的地(呈现视图)作为动画的同级。因此,从某种意义上讲,我一直在不断堆叠相同的呈现视图。
import UIKit
// unwind segue
class SegueBackToLogin: UIStoryboardSegue {
override func perform() {
let src = self.source
let dst = self.destination
// insert the presenting view below the presented one as a sibling
src.view.superview?.insertSubview(dst.view, belowSubview: src.view)
UIView.animate(
withDuration: 0.25,
delay: 0.0,
options: UIView.AnimationOptions.curveEaseInOut,
animations: {
// slide presented view away
src.view.transform = CGAffineTransform(translationX: src.view.frame.size.width, y: 0)
},
completion: { finished in
// dismiss the presented view
src.dismiss(animated: false, completion: nil)
}
)
}
}
所以我的第二个尝试是不插入dst.view
作为子视图,因为根据我在前进方向上所做的操作,在已呈现视图的下面应该已经有一个呈现视图。但是,在过渡时,呈现视图将显示为黑屏,并且仅在关闭呈现的视图后(即动画结束时)才呈现该视图。我该怎么解决这个问题?