2010-09-02 34 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]; 
}