移动到其他视图控制器时的标签栏

Posted

技术标签:

【中文标题】移动到其他视图控制器时的标签栏【英文标题】:Tab bar when move to other view controller 【发布时间】:2014-04-11 15:08:18 【问题描述】:

我的应用程序的标签栏有问题。当我打开我的应用程序时,底部选项卡会出现,因为我使用的是选项卡栏控制器,但是当我移动到另一个视图控制器并返回时,选项卡栏消失了。我必须对故事板做些什么吗?

【问题讨论】:

转移到另一个控制器的情况如何,你又如何回来? 你能显示一些代码吗? 我正在使用故事板。我有一个标签栏控制器和一个连接到它的 3 个视图控制器,每个控制器都有标签,因此很容易切换。一个选项卡有一个按钮,当按下该按钮时,它会转到另一个视图控制器。当我回到选项卡式视图控制器时,选项卡消失了。我没有使用代码。 这并不能解释 如何 你将要往返于这个视图控制器。那个按钮连接到什么,一个segue?你回来的时候怎么样,是用segue完成的吗?如果是这样,那个segue是如何连接的?? 好的,我正在使用情节提要。我有一个标签栏控制器。标签栏控制器与两个视图控制器连接,这些控制器使用故事板segue(关系)具有底部标签。我在其中一个视图控制器上有一个按钮,可以说 forestviewcon。我已经将该按钮连接到另一个视图控制器让我们说 appleviewcon 使用 segue。在appleviewcon 上,我有一个返回按钮,可以连接到forestviewcon。当我按下后退按钮时,它显示 forestviewcon 但没有选项卡按钮。没有使用代码 【参考方案1】:

好的,正如我所怀疑的那样,您以不正确的方式“返回”。除非您使用 unwind segue,否则您永远不应该使用 segue 回到先前的控制器。您正在做的是实例化您认为要返回的那个控制器的一个新实例——一个没有嵌入标签栏控制器的实例。因此,您要么需要使用展开转场,要么使用dismissViewController:animated:completion: 返回代码(假设您使用模态转场继续前进)。

【讨论】:

谢谢我听说过一个放松的segue,我之前试过我使用代码- (IBAction)firstViewReturnActionForSegue:(UIStoryboardSegue *)segue NSLog(@"First view return action invoked."); 我在我的forestviewcon上添加了这个。我推了出口,并用后退按钮连接了这个 segue。我认为我在做正确的事 不,它不让我回去。即使我点击按钮也没有任何反应 @user3511110,我不确定那是怎么回事。那应该行得通。如果您右键单击按钮,它是否会在出现的窗口中显示该连接(窗口中应该有一个“触发的 Segues”部分,左侧有“动作”,右侧有“展开” “firstViewReturnActionForSegue”下面)? 好的,成功了。当我制作另一堂课时,它起作用了。奇怪的。谢谢。【参考方案2】:

如果您使用以下内容导航到另一个视图:

NamedViewController *svc = [self.storyboard instantiateViewControllerWithIdentifier:@"NamedViewController"];
[self.navigationController pushViewController:svc animated:YES];

并使用以下内容返回它应该可以工作。

[[self.navigationController popViewControllerAnimated:YES] viewWillAppear:YES];

【讨论】:

以上是关于移动到其他视图控制器时的标签栏的主要内容,如果未能解决你的问题,请参考以下文章

将主标签栏添加到其他视图控制器

移动根视图控制器的框架,包含一个标签栏

没有 TabBarController 的标签栏 - 为情节提要中的标签栏项目添加视图控制器

切换到另一个视图控制器时,如何保持标签栏可见? [关闭]

使用标签栏关闭视图控制器后动画不会停止

如何使用新数据重新加载或刷新选项卡栏控制器的选项卡栏中的数据?