gpt4 book ai didi

ios - 当 View Controller 消失时会调用 deinit 吗?

转载 作者:行者123 更新时间:2023-11-28 11:36:29 25 4
gpt4 key购买 nike

我创建了两个 View Controller ,如下所示

Navigation controller -> View Controller -> Details View Controller
1 2 3

(2) View Controller 中有一个按钮,单击该按钮将显示 (3) Details View Controller。我创建了一个从按钮到 (3) VC 的转场。

我在这两个类中添加了 deinit block 。

deinit {
print("vc deinit")
}

但是,这不会被记录。什么时候会释放 View Controller ?

Sample code

最佳答案

在这种情况下,每次您点击导航(弹出到上一个 View Controller )。

那么,为什么第一个 deinit(View Controller 中的那个)没有被调用?

那是因为它是导航 Controller 堆栈中的第一个 View Controller 。推送到第二个 View Controller 并不意味着前一个 View Controller 已被释放并且仍然作为导航堆栈中的第一个元素存在;例如,这就是为什么当您从弹出的 View Controller 返回时不应调用 viewDidLoad 方法的原因,这意味着它没有被释放。

关于ios - 当 View Controller 消失时会调用 deinit 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55208476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com