Ios 如何在不同选项卡下的导航控制器之间切换?

Ios 如何在不同选项卡下的导航控制器之间切换?,ios,objective-c,uiviewcontroller,uistoryboard,Ios,Objective C,Uiviewcontroller,Uistoryboard,我有一个应用程序,有两个不同的选项卡,每个选项卡都有自己的导航控制器 视觉表现: Tab controller: Tab 1 Navigation Controller ViewController1 Tab 2 Navigation Controller ViewController2 ViewController2是一个TableViewController。现在我想在选中一行时从ViewController2切换到ViewController1 我使用segue将

我有一个应用程序,有两个不同的选项卡,每个选项卡都有自己的导航控制器

视觉表现:

Tab controller:
  Tab 1 Navigation Controller
    ViewController1
  Tab 2 Navigation Controller
    ViewController2
ViewController2是一个TableViewController。现在我想在选中一行时从ViewController2切换到ViewController1

我使用segue将表格单元格(我使用的是动态原型)直接连接到ViewController1。这是可行的,但视图仍在选项卡2中。我试图通过在prepareForSegue中手动更改选项卡来解决此问题,如下所示:

self.tabBarController.selectedIndex = 0;
这种方法的问题是,当全部完成后,我点击屏幕上的tab 2,它仍然显示ViewController1。我必须点击该选项卡两次才能返回ViewController2。而且,动画也消失了

(可能不相关)用例:表1处理卡片。表2涉及一副牌。当我在选项卡2中选择卡片组时,我希望应用程序切换到选项卡1以显示该卡片组中的卡片


tldr:我想从ViewController2切换到ViewController1,同时从选项卡2切换到选项卡1。应保留动画。

UITabBarController
中切换选项卡时没有内置动画。因此,您可以使用tabbar控制器属性
selectedIndex
手动切换选项卡


你想保存什么动画?如果您想像在同一个UINavigationController中一样拥有推送动画,我建议您创建ViewController1的单独副本

这其实不是主要问题。主要问题是现在有两个ViewController1副本,一个在选项卡1中,一个在选项卡2中。当我切换回选项卡2时,我希望它显示ViewController2,而不是ViewController1。然后您需要做的就是更改所选的索引,如@sha所述。您可能还需要向
ViewController
发送消息,以便它显示相应的卡片当您将页面从2切换到1时,您需要将导航控制器2一直弹出到根目录