我已经实现了带有四个导航控制器的标签栏控制器 每个人都有它的根视图控制器。
以下是我的情景 -
- 当我从标签栏控制器中选择适当的标签时 root视图控制器已经启动。 从那个根视图控制器我正在推动另一个视图控制器。
醇>2.现在我选择一个不同的选项卡并通过其导航控制器加载其各自的根视图控制器。
现在我再次从标签栏中选择一个标签,之前选择了 在上面的第1点中描述。现在它正在显示一个视图控制器 之前已从其根视图控制器推送。
我正面临着下面图片中逐步场景所描述的问题 -
我想启动根视图控制器而不是从该根视图控制器推送的视图控制器。有可能吗?
如果有任何关于我的关于堆栈流量的问题的答案,请提供堆栈流量链接或如果有任何建议请提供给我。谢谢你提前。
答案 0 :(得分:1)
您需要拦截标签栏触摸,以便在切换所选标签时,控制器会调用[currentNavController popToRootViewControllerAnimated:NO];
。
这可以通过标签栏委托tabBarController:didSelectViewController:
来完成,它应保留以前选择的视图控制器的记录,以便它可以将其弹出到root - 但只有在显示新的视图控制器之后。