我创建了两个视图控制器
导航控制器 - >视图控制器 - >细节视图控制器 1 2 3(2)View Controller有…
在这种情况下,唯一的 deinit 将被调用的是第二个(在实施中实现的那个) Details View Controller )每次点击导航上的后退按钮(弹出到上一个视图控制器)。
deinit
Details View Controller
所以,为什么第一个 deinit (在 View Controller )没被打电话?
View Controller
那是因为它是导航控制器中的第一个视图控制器 堆 。推送到第二个视图控制器并不意味着前一个视图控制器已被解除分配,并且仍然作为导航堆栈中的第一个元素存在;举个例子,这就是原因 viewDidLoad 当你从弹出的视图控制器返回时,不应该调用方法,这意味着它没有被释放。
viewDidLoad