【问题标题】:Tab Bar controller disappearing when moving to another view (iOS SDK, Using storyboards)移动到另一个视图时标签栏控制器消失(iOS SDK,使用情节提要)
【发布时间】:2016-06-30 22:20:49
【问题描述】:

我正在使用情节提要构建 iPhone 应用程序,但标签栏控制器出现问题。在从标签栏控制器 (view1) 链接的其中一个视图上,有一个按钮可以通向另一个视图 (view2)。在 View2 上,有一个返回 View1 的按钮。非常直截了当。但是当我从view1转到view2时,标签栏消失了,更糟糕的是,当我回到View1时,标签栏仍然消失了...... 我该如何解决? (我还没有在应用程序中添加任何代码,只有故事板和苹果提供的 AppDelegate 类(我想还有一个主文件,但我不打算触摸它)。

非常感谢任何回复!

【问题讨论】:

  • 你如何呈现第二个视图?
  • 当用户点击按钮时,它只是将它们转移到 View2
  • 您是否为此进行了任何设置?还是您只是使用标签栏功能。从您的问题看来,您正在使用 segue
  • 是的,我确实在使用 A Segue。正如我之前提到的,我正在使用情节提要并且我还没有在代码行上编写。 (我猜想解决这个问题需要几行代码......;)
  • 不一定。您是否只是将标签栏控制器拖到情节提要上并保持原样?

标签: objective-c ios uitabbarcontroller storyboard uitabbar


【解决方案1】:

如果您从作为选项卡栏视图的视图执行模态转场,它将摆脱您正在呈现的模态视图的选项卡栏。

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

我会建议两件事之一。

1.) 如果您想在从 view1 切换到 view2 时将选项卡保留在底部,请单击 view1,在屏幕顶部选择编辑器/嵌入/导航控制器。这会将您的 view1 嵌入到导航控制器中。然后,如果您将 segue 从 Modal 更改为 Push,它将使您的标签栏保持在底部。顶部的导航栏还可以轻松地以正确的方式(通过弹出视图)从视图 2 返回到视图 1,而不是创建新的转场。如果您不喜欢导航栏,则可以在检查器中将“Top Bar”属性更改为“None”。然后,您将需要在 view2 中创建一些其他方式以返回 view1。 (通过弹出控制器,而不是通过 SEGUEING)

2) 如果您不想设置导航控制器,则将标签栏的内容保持在 view2 控制器的底部会有点困难。实际上,我不确定您是否可以使用模态转场来做到这一点,您可能必须编写某种类型的自定义转场。无论哪种方式,如果您想转换回 view1 并获得正确的控制器(不是没有选项卡的新版本),那么您需要将一个操作附加到您正在使用的任何按钮上,并使用以下代码(我还附加了导航控制器推送 segues 的代码,以防您创建导航控制器并摆脱导航栏。)

对于模态搜索:

[self dismissModalViewControllerAnimated:YES];

对于推送转场:

[self.navigationController popViewControllerAnimated:YES];

您最好的选择是使用导航控制器方法,因为您可以确保密切关注。然后你可以使用导航栏返回(简单的方法,不需要代码)或者你可以摆脱它并使用一个按钮和上面的代码。

祝你好运!

【讨论】:

  • 我使用了解决方案 1。但是当我这样做时(选定视图 #1),我有两个导航控制器,因为我的情节提要中已经有一个。我删除了标签栏控制器后面的父导航控制器。相反,我使用了这样的导航控制器。标签栏控制器 -> 导航栏控制器 -> 表控制器 -> 详细表控制器。因此,对于每个选项卡,我都有自己独立的导航控制器。可能有一种使用一个导航控制器的共享方式,但它似乎工作得很好。
  • 是的,这正是我在几个项目中所做的。这就是我在上面试图描绘的。
【解决方案2】:

我遇到了同样的问题,我知道这是一个老问题,但 [self dismissModalViewControllerAnimated:YES]; 在 iOS 6 中已被弃用。

我用的是:

[self dismissViewControllerAnimated:YES completion:nil];

【讨论】:

    猜你喜欢
    • 2013-06-04
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 2013-02-05
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多