假设有一个标签栏控制器,有两个标签,A 和 B,其中 A 是导航控制器。
当用户在 A 中时,他可以先推 A1 再推 A2,这两个都是视图控制器。A2 上的后退按钮执行:
[self.navigationController popViewControllerAnimated:YES];
正确触发 A2 上的 dealloc 方法。
如果用户在 A2 中然后切换到选项卡 B,我需要在 A2 上调用 dealloc 方法;因此我在 TabBarController 中实现了以下方法:
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
UINavigationController *nc = (UINavigationController*)tabBarController.selectedViewController;
[nc popToRootViewControllerAnimated:YES];
return YES;
}
但是在这个流程中,永远不会调用 A2 的 dealloc 方法!它怎么可能从 A2 弹出到 A1 工作,而更改选项卡视图控制器没有被释放?
感谢您的任何提示!
担