viewDidDisappear не вызывается на UINavigationController - PullRequest
0 голосов
/ 15 ноября 2010

У меня проблема с моим навигационным контроллером.Если я добавлю контроллер представления в стек:

- (void) tui_ToggleListStudy:(id)sender
{
    listVC = [[ListViewController alloc] init];
    [self.navigationController pushViewController:listVC animated:NO];
    [listVC release];
}

У меня есть сообщения NSLog для контроллера представления внизу, как для viewWillDisappear:, так и viewDidDisappear - но вызывается только viewWillDisappear:.

Кроме того, контроллер представления не получает никаких других сообщений делегата: Нет viewDidUnload, или dealloc ...

Могу ли я что-нибудь сделать с этим?

Я в тупике!Есть мысли?

Спасибо!

Ответы [ 4 ]

3 голосов
/ 15 ноября 2010

Я знаю ответ, если вы сделали ту же опечатку в своем коде, что и в своем вопросе: сигнатура метода - viewDidDisappear: (с аргументом animated), а не viewDidDisappear.

Мало того, контроллер представления не получает никаких других сообщений делегата: No viewDidUnload или dealloc ...

Контроллер представления не будет освобожден, когда вы поместите другой контроллер в стек. И viewDidUnload не будет вызван, если у вас не хватит памяти.

2 голосов
/ 29 марта 2011

Предполагая, что ваш контроллер навигации содержится в каком-либо контроллере вида сверху, вы также должны переслать соответствующие сообщения от этого контроллера вида сверху контроллеру навигации:

-(void)viewWillAppear:(BOOL)animated
{
    [navController viewWillAppear:animated];
}

-(void)viewDidAppear:(BOOL)animated
{
    [navController viewDidAppear:animated];
}

-(void)viewWillDisappear:(BOOL)animated
{
    [navController viewWillDisappear:animated];
}

-(void)viewDidDisappear:(BOOL)animated
{
    [navController viewDidDisappear:animated];
}
1 голос
/ 15 ноября 2010

Вы должны вызвать super при реализации viewWillDisappear.

0 голосов
/ 15 ноября 2010

Назначенный инициализатор для UIViewController - -initWithNibName:bundle:. Вы уверены, что ваш контроллер вида находит свое перо и находит его связанное представление? Бьюсь об заклад, если вы установите точку останова после инициализации вашего ListViewController, вы обнаружите, что его -view возвращает ноль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...