我有一个 UINavigationController
,上面有一个 UIViewController
。在我的 viewController
的 view
中,我有两个 subview UIScrollView
。我每次都会在 viewController
的 viewWillAppear
方法中重新创建这些 scrollview
,并将它们作为 subview 添加到我的 viewcontroller 的 View 中。我正在使用 ARC,我应该在 viewDidDisappear
方法中销毁两个 ScrollView 吗?内存使用的更好做法是什么。
编辑:我做了一些调查,并且没有删除 ScrollView 并将它们设置为 nil 在 viewDidDisappear
方法中,它们不会被释放。当调用 viewWillAppear
时, View Controller 的 View 会获得越来越多的 subview 。正如我在评论中提到的,我从未取消分配我的主视图 Controller 。它始终保留在导航 Controller 的堆栈中。为什么我必须手动释放 ScrollView ?
最佳答案
可能根本不需要做任何事情。如果您的 UIViewController 从屏幕上删除然后被释放,它将自动释放其 View 层次结构(包括您添加的 subview )。检查这一点的一个简单方法是重写您感兴趣的类的 dealloc
方法(使用添加到类中的 ObjC Category 方法),并记录一条消息以表明它们已被已删除。
关于iOS:销毁viewDidDisappear中的 subview ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18322200/