Переход к корневому контроллеру представления без сбоя анимации для табличного представления

У меня есть 3 контроллера представления в контроллере панели вкладок. Щелчок по любой вкладке загружает ее корневой контроллер представления в стек навигации.

например, tab1, tab2 и tab3.
Контроллер 2-го представления в стеке навигации (tab2VC2) имеет tableView. Щелкните вкладку 2, чтобы отобразить VC на вкладке 2, затем нажмите вкладку 1, попытайтесь перейти к ее корневому виртуальному каналу. Затем приложение выдает сообщение

[UserDetailVC tableView: cellForRowAtIndexPath:]: сообщение, отправленное освобожденному экземпляру 0xe0a23b0

Если я использую popToRootVC с анимацией, тогда все в порядке. Я обнаружил, что viewDidAppear в tab2VC2 вызывается там, где вызывается tableView.reloadData, затем dealloac, кажется, тем временем reloadData начинает работать, таблица освобождается. в случае анимации у нее есть время, поэтому она не вылетает. Но без анимации вылетает. Как вы думаете, это ошибка iPhone? или я делаю не так? Поскольку у контроллера pop to root есть опция без анимации, она должна работать, не так ли?

#pragma mark Tab bar controller delegate
- (void)tabBarController:(UITabBarController *)tbController didSelectViewController:(UIViewController *)viewController {
    int i = tbController.selectedIndex;
    NSArray *mycontrollers = tbController.viewControllers;
    [[mycontrollers objectAtIndex:i] popToRootViewControllerAnimated:NO];
}
12
задан Vadim Kotov 22 August 2019 в 08:27
поделиться