Ios 在不同导航控制器中的选项卡栏控制器屏幕之间导航

Ios 在不同导航控制器中的选项卡栏控制器屏幕之间导航,ios,swift,uinavigationcontroller,uitabbarcontroller,Ios,Swift,Uinavigationcontroller,Uitabbarcontroller,首先,如果我解释得不好,我很抱歉,我已经把我的问题再读了好几遍,我想不出一个解释这个问题的好方法。如果你还有其他问题,请告诉我 我的应用程序的布局要求屏幕同时嵌入选项卡栏控制器和导航控制器。我对它进行了设置,使其在大多数情况下都能正常工作,但是我在从一个导航控制器/选项卡导航到另一个时遇到了一些问题-我有一个导航控制器用于一个选项卡(用户选择要上传的图像),第二个导航控制器用于第二个选项卡中的屏幕。下面是它在情节提要中的外观: 我遇到的问题是,一旦用户选择要在“上部”导航控制器(“右侧”选项卡

首先,如果我解释得不好,我很抱歉,我已经把我的问题再读了好几遍,我想不出一个解释这个问题的好方法。如果你还有其他问题,请告诉我

我的应用程序的布局要求屏幕同时嵌入选项卡栏控制器和导航控制器。我对它进行了设置,使其在大多数情况下都能正常工作,但是我在从一个导航控制器/选项卡导航到另一个时遇到了一些问题-我有一个导航控制器用于一个选项卡(用户选择要上传的图像),第二个导航控制器用于第二个选项卡中的屏幕。下面是它在情节提要中的外观:

我遇到的问题是,一旦用户选择要在“上部”导航控制器(“右侧”选项卡)中发布的照片并点击“发布”,我就会导航到新更新的提要(位于另一个选项卡中):

虽然屏幕和更新的提要显示正确,但我仍然在“右”选项卡中,而提要应该在“左”选项卡中


我的问题是,如何正确导航到其他导航控制器,并将其放回正确的选项卡中?

您可以切换选项卡,而不是使用
tabBarController?将新的视图控制器推到当前选项卡的导航堆栈上。selectedIndex=0
。这将带您回到原始提要页面,而不需要任何推送代码


为了用新帖子更新它,当数据出现时,您需要通过覆盖视图控制器的
viewwillappeard
方法刷新数据,以重新获取数据并重新加载集合视图。

您可以切换选项卡,而不是使用
tabBarController?将新的视图控制器推到当前选项卡的导航堆栈上。selectedIndex=0
。这将带您回到原始提要页面,而不需要任何推送代码


为了用新帖子更新它,您需要在数据出现时刷新数据,方法是覆盖视图控制器的
viewwillbeen
方法来重新获取数据并重新加载集合视图。

可能
tabBarController?。selectedIndex=1
会有帮助吗?切换选项卡而不是将新的控制器推到第一个选项卡的导航堆栈上?我尝试在推之前添加
self.tabBarController?。selectedIndex=0
,虽然它确实将我放回了正确的选项卡,但提要显示与我选择要上载的图像之前一样-更新的提要仍在“第二个”选项卡中。上传完一张图片后,我将完全离开第二个标签页。我对流程有点困惑。切换标签后出现原始提要时,是否可以刷新它,而不要将其推到其他位置?(除非有原因,第一个选项卡中的原始视图需要保持不更新。)还是要将新提要视图推到旧提要视图的顶部?在这种情况下,切换选项卡,然后将您已经为推送提供的代码放入提要视图控制器就可以了。是的,对不起,我发现很难解释。基本上我有两个标签,左边和右边。左边的选项卡有提要和一些其他窗口。右选项卡上唯一的功能就是上传控制器,您可以在其中选择要上传的图像,然后点击“发布”。此时,您应该离开右选项卡,回到左选项卡,进入新更新的提要。然而,按照我现在的方式,当我上传图像时,更新后的提要显示在上传选项卡中,而不是提要选项卡中。如果我在所有这些之后再次点击右(上传)选项卡图标两次,它将返回到应该的方式,同样,如果我对左(提要)选项卡图标进行同样的操作,它显示了正确的更新提要,并且所有内容都恢复正常。我只是不想在上传图像后点击每个选项卡图标两次,屏幕才能正确显示。也许
tabBarController?。selectedIndex=1
会有帮助吗?切换选项卡而不是将新的控制器推到第一个选项卡的导航堆栈上?我尝试在推之前添加
self.tabBarController?。selectedIndex=0
,虽然它确实将我放回了正确的选项卡,但提要显示与我选择要上载的图像之前一样-更新的提要仍在“第二个”选项卡中。上传完一张图片后,我将完全离开第二个标签页。我对流程有点困惑。切换标签后出现原始提要时,是否可以刷新它,而不要将其推到其他位置?(除非有原因,第一个选项卡中的原始视图需要保持不更新。)还是要将新提要视图推到旧提要视图的顶部?在这种情况下,切换选项卡,然后将您已经为推送提供的代码放入提要视图控制器就可以了。是的,对不起,我发现很难解释。基本上我有两个标签,左边和右边。左边的选项卡有提要和一些其他窗口。右选项卡上唯一的功能就是上传控制器,您可以在其中选择要上传的图像,然后点击“发布”。此时,您应该离开右选项卡,回到左选项卡,进入新更新的提要。然而,按照我现在的方式,当我上传图像时,更新后的提要显示在上传选项卡中,而不是提要选项卡中。如果我在所有这些之后再次点击右(上传)选项卡图标两次,它将返回到应该的方式,同样,如果我对左(提要)选项卡图标进行同样的操作,它显示了正确的更新提要,并且所有内容都恢复正常。我只是不想在上传一张图片后,点击每个标签图标两次,屏幕才能正确显示。
                let feedController = self.storyboard?.instantiateViewController(withIdentifier: "feedVC") as! FeedViewController
                feedController.navigationItem.setHidesBackButton(true, animated: false)
                self.navigationController?.pushViewController(feedController, animated: true)