在segue之后保持标签栏在View上?

我有一个标签栏控制器,然后是导航控制器,然后是第一个视图控制器。 此视图控制器具有预期的标签栏。 但是,当我离开这个视图时,我失去了标签栏。 我希望它能够保留其在另一个VC上的位置,这源于第一个观点。 这是我的IB:

在此处输入图像描述

我希望标签栏在通过右侧VC的segue加载后也出现在左侧VC上,

这是如何实现的,因为无论我如何设置VC底部的标签部分,它都会消失,如上所示。

如果您从一个标签栏视图的视图中执行模态segue,它将摆脱您正在呈现的模态视图的标签栏。

其次,当您进行segue时,您正在创建视图控制器的新实例。 所以我猜你是从view1到view2并且丢失了标签栏,然后你又回到了view1。 此时,您已创建view1,view2和view1的第二个副本,该副本没有标签栏。

我会建议两件事之一。

1.)如果要在从view1到view2的位置时将标签保持在底部,然后单击view1,在屏幕顶部选择Editor / Embed In / Navigation Controller。 这会将您的view1嵌入导航控制器中。 然后,如果您将segue从Modal更改为Push,它将使标签栏保持在底部。 顶部的导航栏还可以轻松地从视图2返回到视图1以正确的方式(通过弹出视图)而不是创建新的segue。 如果您不喜欢导航栏,则可以在检查器中将“顶栏”属性更改为“无”。 然后,您需要在view2中创建一些其他方法以返回view1。 (通过弹出控制器,而不是通过分离)

2)如果您不想设置导航控制器,那么将标签栏的内容保持在view2控制器的底部会有一点点困难。 事实上,我不确定你是否可以使用模态segue完成它,你可能不得不写一些类型的自定义segue。 无论哪种方式,如果你想转换回view1并转到正确的控制器(不是没有选项卡的新版本),那么你需要将一个动作附加到用于segue的任何按钮并使用以下代码(我也附上)导航控制器推送segue的代码,以防您创建导航控制器并摆脱导航栏。)

对于模态瞄准:

[self dismissModalViewControllerAnimated:YES]; 

对于Push segue:

 [self.navigationController popViewControllerAnimated:YES]; 

您最好的选择是使用导航控制器方法,因为您可以保留标签。 然后,您可以使用导航栏返回(简单的方法,无需代码),或者您可以摆脱它并使用按钮和上面的代码。

祝你好运! 如果有帮助,请单击绿色复选标记