我试图实现以下目标:
假设我们在一个导航控制器中,并且我们推送了一个 ViewController。用户点击标签栏的其他项目。在我们移动到另一个视图控制器之前,我想弹出(动画)推送的视图控制器,但我希望新的视图控制器作为根,所以它会在推送的视图控制器消失时出现。
很难解释,我只是希望新的视图控制器出现在推送的视图控制器由于 popToRootViewController 的动画而消失时出现,而不是旧的视图控制器出现然后只是移动到新的视图控制器。
想象一下,我们在标签栏中的选项 b 中,它对应于视图控制器 B,并且推送了一个 C 视图控制器。
一个
B -> C
用户按a,
我希望这发生
A -> C
B -> C
然后选择 A viewController,然后弹出两个 C,在 A 情况下动画,在 B 情况下不动画。
这是我的代码:
[(UINavigationController *)self.tabBar.selectedViewController popToRootViewControllerAnimated:NO];
UIViewController * viewControllerToPush = self.tabBar.selectedViewController;
self.tabBar.selectedIndex = indexPath.row;
[(UINavigationController *)self.tabBar.selectedViewController pushViewController:viewControllerToPush animated:NO];
[(UINavigationController *)self.tabBar.selectedViewController popToRootViewControllerAnimated:YES];
但它不起作用,我得到“不支持推送导航控制器”
是否可以将视图控制器从一个导航控制器移动到另一个?有任何想法吗?