由于内存问题,当视图消失时,我从superview中删除这个集合视图,但是我想在视图出现时添加它,我只想将它添加回来!还是有别的办法可以做到?谢谢。
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
let subViews = self.view.subviews
for subview in subViews{
if subview.tag == 1 {
subview.removeFromSuperview()
}
}
}更新
var savedView: UIView?
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
let subViews = self.view.subviews
for subview in subViews{
if subview.tag == 1 {
savedView = subview
subview.removeFromSuperview()
}
}
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if let subview = savedView {
view.addSubview(subview)
savedView = nil
}
}但它没有把它加回去。
发布于 2017-02-26 15:36:57
在视图控制器中创建一个可选属性。在viewDidDisappear方法中将已找到的子视图分配给此可选属性。然后,在viewWillAppear方法中,可以检查是否设置了可选属性。如果设置,将其作为子视图添加回。
添加此属性:
var savedView: UIView?然后在viewDidDisappear中这样做
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
// This assumes there is no other deep subview with a tag of 1
// If this isn't true, use your current for-loop to find the subview
if let subview = subviews.viewWithTag(1) {
savedView = subview
subview.removeFromSuperview
}
}并在viewWillAppear中这样做
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if let subview = savedView {
addSubview(savedView)
savedView = nil
}
}https://stackoverflow.com/questions/42470464
复制相似问题