我有一个应用程序,可以根据文本文件的内容以编程方式创建标签和文本字段。无论何时加载视图控制器,它都会创建每次都不同的文本字段和标签。我的问题是我需要清除标签和文本字段而不释放视图控制器,因为我需要跟踪视图控制器。我试过self.viewController = nil
,但我很确定这会导致内存泄漏。有没有办法删除视图的所有子视图?
答案 0 :(得分:3)
Greg的意思是:
for (UIView *subview in self.view.subviews) {
[subview removeFromSuperview];
}
这可能无法正常工作,因为当您在for循环中迭代数组时,Objective C不喜欢它。更安全的选择是:
while ([self.view.subviews count] > 0) {
[[self.view.subviews lastObject] removeFromSuperview];
}
答案 1 :(得分:0)
如果您有一个名为view
的视图,则应该可以使用以下代码从视图中删除所有子视图:
for (UIView *subview in view) {
[subview removeFromSuperview];
}