1

我有一个应用程序可以根据文本文件的内容以编程方式创建标签和文本字段。每当加载视图控制器时,它都会创建每次不同的文本字段和标签。我的问题是我需要在不释放视图控制器的情况下清除标签和文本字段,因为我需要跟踪视图控制器。我试过self.viewController = nil了,但我很确定这会导致内存泄漏。有没有办法删除视图的所有子视图?

4

2 回答 2

3

格雷格的意思是这样的:

for (UIView *subview in self.view.subviews) {
    [subview removeFromSuperview];
}

但是,这可能不会像您期望的那样工作,因为当您在 for 循环中迭代数组时修改数组时,Objective C 不喜欢它。一个更安全的选择是:

while ([self.view.subviews count] > 0) { 
    [[self.view.subviews lastObject] removeFromSuperview]; 
}
于 2010-09-03T04:51:29.637 回答
0

如果您有一个名为 的视图view,您应该能够使用以下代码从视图中删除所有子视图:

for (UIView *subview in view) {
    [subview removeFromSuperview];
}
于 2010-09-02T20:09:23.450 回答