У меня есть 3 контроллера вида в контроллере панели вкладок. Нажатие на любую вкладку загружает свой контроллер корневого представления в стек навигации.
например. tab1, tab2 и tab3.
Второй контроллер представления в стеке навигации (tab2VC2) имеет таблицуView.
Нажмите на tab2 show VC в tab2, затем нажмите на tab1, попытайтесь перейти к его rootVC. Затем приложение рушится, говоря
[UserDetailVC Tableview: cellForRowAtIndexPath]: сообщение, отправленное на освобожденный экземпляр 0xe0a23b0
Если я popToRootVC с анимацией, тогда все в порядке. Я обнаружил, что viewDidAppear в tab2VC2 вызывается, где вызывается tableView.reloadData, а затем dealloac, похоже, что reloadData начинает работать, таблица освобождается. в случае анимации он получает некоторое время, поэтому он не сбой. Но без анимации он рушится. Как вы думаете, это ошибка iPhone? или я поступаю неправильно? Поскольку у контроллера pop до 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];
}