У меня есть приложение, которое программно создает метки и текстовые поля на основе содержимого текстового файла. Всякий раз, когда контроллер просмотра загружается, он создает текстовые поля и метки, которые различаются каждый раз. Моя проблема в том, что мне нужно очистить ярлыки и текстовые поля, не выпуская контроллер просмотра, так как мне нужно отслеживать контроллер вида. Я пробовал self.viewController = nil
, но я уверен, что это приводит к утечке памяти. Есть ли способ удалить все представления в представлении?iPhone SDK Управление памятью для приложения Multiview
1
A
ответ
0
Если у вас есть мнение по имени view
, вы должны быть в состоянии удалить все подвидов с точки зрения с помощью этого кода:
for (UIView *subview in view) {
[subview removeFromSuperview];
}
3
Что Грег хотел сказать, это:
for (UIView *subview in self.view.subviews) {
[subview removeFromSuperview];
}
Возможно, это не так, как вы ожидали, поскольку Objective C не нравится, когда вы изменяете массив, пока вы повторяете его в цикле for. Более безопасный выбор будет таким:
while ([self.view.subviews count] > 0) {
[[self.view.subviews lastObject] removeFromSuperview];
}