У меня была та же проблема, и, как вы предложили в своем комментарии к ответу Роба Напира, она должна быть реализована в tabBarController вместо viewDidDisappear.
Запуск Zombies в инструментах покажет вам, что вызов updateNumSectionsделается для освобожденного объекта.
Для тех, кто ищет эту проблему, вот код, который вы должны использовать в вашем tabViewController, учитывая навигацию NavViewController, которая вызывается на вкладке, которая больше не отображается.
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
//Always go to the root controller when accessing a tab.
//If any navigation controller that must remember its last state, change this for viewController == or !=
if ([viewController isKindOfClass:[UINavigationController class]]) {
[(UINavigationController*)viewController popToRootViewControllerAnimated:YES]; //Do not use code on disappear, instead popToRoot on tab selection
}
}