2010-09-02 3 views
1

У меня есть приложение, которое программно создает метки и текстовые поля на основе содержимого текстового файла. Всякий раз, когда контроллер просмотра загружается, он создает текстовые поля и метки, которые различаются каждый раз. Моя проблема в том, что мне нужно очистить ярлыки и текстовые поля, не выпуская контроллер просмотра, так как мне нужно отслеживать контроллер вида. Я пробовал self.viewController = nil, но я уверен, что это приводит к утечке памяти. Есть ли способ удалить все представления в представлении?iPhone SDK Управление памятью для приложения Multiview

ответ

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]; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^