viewDidUnload与viewDidDisappear

时间:2012-05-14 04:18:22

标签: ios view uiviewcontroller lifecycle

我不明白何时应该在viewDidUnloadviewDidDisappear中实施某些内容。这两者有什么区别?

例如,我想在视图层次结构中删除视图控制器时发送NSNotification。在这两种方法之间,我发布通知的位置是否重要?

https://developer.apple.com/documentation/uikit/uiviewcontroller

2 个答案:

答案 0 :(得分:5)

这是参考apple的文档: -

viewDidUnload: -

当发生内存不足并且不需要当前视图控制器的视图时,系统可能会选择从内存中删除这些视图。在视图控制器的视图发布后调用此方法,并且您有机会执行任何最终清理。如果视图控制器存储对视图或其子视图的单独引用,则应使用此方法来释放这些引用。您还可以使用此方法删除对您为支持视图而创建的任何对象的引用,但现在视图已不再需要。

viewDidDisappear: -

通知视图控制器其视图已从每次视图消失或移动到其他视图的视图层次结构中删除。

答案 1 :(得分:0)

每次视图消失时都会调用

viewDidDisappear,或者当控制器的视图从内存中释放时,您将转到其他视图并调用viewDidUnload。 (在iOS 6.0中不推荐使用。在低内存条件下不再清除视图,因此永远不会调用此方法。)see the reference