2010-09-02 76 views
1

我有一个应用程序,它基于文本文件的内容以编程方式创建标签和文本字段。无论何时加载视图控制器,它都会创建每次都不相同的文本字段和标签。我的问题是我需要清除标签和文本字段而不释放视图控制器,因为我需要跟踪视图控制器。我试过self.viewController = nil,但我很确定这会导致内存泄漏。有没有办法删除视图的所有子视图?iPhone SDK管理多视图内存应用程序

回答

0

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

for (UIView *subview in view) { 
    [subview removeFromSuperview]; 
} 
3

什么格雷格想说的是:

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

虽然这可能不会如你所期望的那样工作,因为当你在for循环中遍历它时修改数组时,Objective C不喜欢它。一个更安全的选择是:

while ([self.view.subviews count] > 0) { 
    [[self.view.subviews lastObject] removeFromSuperview]; 
}