2010-04-21 5 views
2

Надеюсь загрузить ViewController и сделать что-то, а затем выгрузить (viewDidUnload) из памяти.удалить ViewController из памяти

if (self.vViewController5.view.superview==nil) 
{ 

    ViewController5 *blueController = 
    [[ViewController5 alloc] initWithNibName:@"View5" bundle:nil]; 

    self.vViewController5 = blueController; 

    [self.vViewController5 setDelegate:self]; 
    [blueController release]; 
} 



[self presentModalViewController:vViewController5 animated:YES]; 

позже, вызовите

[self dismissModalViewControllerAnimated:YES]; 

, но я обнаружил, что dismissModalViewControllerAnimated не запускает событие viewDidUnload из Viewcontroller5.

Я пробую функцию, но это вызвало сбой программы. Я также пытаюсь removeFromSuperView, но он не вызывает событие ViewDidUnload.

Добро пожаловать любой комментарий

Благодарности

InterDev

ответ

5

viewDidUnload вызывается только тогда, когда ваше приложение получает предупреждение о сохранении памяти, а представление неактивно. Он обычно используется для освобождения сохраненных представлений (включая IBOutlets). Вы можете использовать viewWillDisappear или viewDidDisappear, чтобы ответить на увольнение (dealloc также будет называться в конечном счете, но не обязательно точно, когда представление отклонено).

+0

Есть ли способ выгрузить viewcontroller из памяти? – arachide

+0

Когда вы отклоняете контроллер модального представления, он будет освобожден и обычно освобожден (если вы его где-то не сохранили). – shosti

1

Уволенный UIViewController не вызовет viewDidUnload, как вы открыли. Однако он вызовет метод viewWillDisappear, если это соответствует вашим потребностям.

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