我注意到变量的状态不会在视图控制器的不同表示中保留。
var starrySky = StarrySky() // this has a state property which is false initially
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if starrySky.state == false { starrySky.createSky(for: self.view) }
if starrySky.state != false { starrySky.resumeSkyAnimations()} // this never runs
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
starrySky.state = true // here im changing the state
starrySky.removeSkyAnimations()
}
Run Code Online (Sandbox Code Playgroud)
所以每当我关闭这个 ViewController 并再次呈现它时,我starrySky.state总是错误的。我在相同的方法中使用相同的代码,rootViewController每当我更改视图时,状态都会保留。
dismiss(animated:,completion:)?那么这是否意味着在您调用dismiss后,任何以模态呈现的VC都会从内存中消失
通常,是的。视图控制器形成父/演示者和子/呈现的层次结构或链。前者拥有并保留后者,并在后者被移除时释放。除非您有意更换根控制器,否则永远不会删除它。
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |