Как мне уничтожить представление, которое добавляется pushViewController? - PullRequest
1 голос
/ 03 сентября 2010

После добавления вида методом pushViewController на панели навигации будет кнопка «Назад», чтобы вытащить вид из стека.Однако, похоже, что iOS не уничтожит представление после того, как выкинуло его из стека, так когда же оно будет уничтожено?Можем ли мы уничтожить его вручную при появлении вида?

Ответы [ 2 ]

2 голосов
/ 03 сентября 2010

Обычно шаблон выглядит так:

- (void)pushSomeViewControllerOnStack
{
    SomeViewController* someViewController = [[SomeViewController alloc] initWithNibName:@"SomeView" bundle:nil];
    [self.navigationController pushViewController:someViewController animated:YES];
    [someViewController release];
}

Другими словами, контроллер навигации будет делать свой собственный retain контроллера вида, что означает, что также необходимо release сделать это самостоятельно, поскольку существует init. Навигационный контроллер также позаботится об освобождении этого контроллера, когда это необходимо.

1 голос
/ 08 октября 2011

Вы должны реализовать методы viewDidUnload и dealloc в своих подклассах UIViewController.

Когда UINavigationController извлекает контроллер представления из стека, код в этих методах будет выполняться.

Вы должны прочитать руководство по программированию View для iOS: контроллеры навигации документацию из библиотеки Apple для разработчиков iOS, а также справочную документацию по классам для UINavigationController и UIViewController классов, чтобы вы лучше понимали жизненный цикл контроллера представления и что ожидать при возникновении различных событий приложения.

...