首页 > 解决方案 > 当从视图 A 切换到视图 B 时,A 的视图控制器会发生什么?

问题描述

我对此感到困惑。当我执行从视图 A 到视图 B 的 segue 时,似乎 A 的视图控制器没有被释放。

A 的视图控制器何时会在内存中释放?我仍然可以在 B 的视图控制器中访问 A 的视图控制器中的内容吗?

标签: ios

解决方案


ViewController A 将保留在内存中。

从技术上讲,您不应该从 ViewController A 访问内容。正确的方法是在 prepareForSegue 函数中从 ViewController A 传递 ViewController B 需要的任何内容。

在 ViewControllerA 中是这样的:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let viewControllerB = segue.destination as? ViewControllerB {
        viewControllerB.content = "" //whatever data you want to pass
    }
}

这是 Swift,您必须将其转换为 Objc。


推荐阅读