Push Segue后TabBar消失

3
这是我的应用程序当前的布局。正如您所看到的,我有一个ViewController嵌入在TabBarViewController中。您可以看到在这两个底部视图控制器中都有两个选项卡栏,但只有第一个显示出来。在第二个视图控制器中进行推送Segue后,选项卡栏消失了。为什么会这样呢?
我添加了第一个视图控制器的属性,并没有设置在Segue期间隐藏底部栏,所以我很困惑为什么在Segue之后它会消失。有什么想法吗?

enter image description here

enter image description here

3个回答

4
您需要将 tabBar 的根视图控制器包装在 UINavigationController 中。因此,您的 UITabBarController 实际上会指向导航控制器。然后,当您在该导航控制器中移动时,选项卡栏将保持不变。
要在应用程序中修复此问题,请在 storyboard 中选择您的视图控制器,然后单击“编辑”->“嵌入”->“导航控制器”。
以下是我为其他遇到此问题的人们精心制作的可视化表示。如果您在下面展示的 storyboard 中删除“NavigationController”,则单击“First View”中的按钮时选项卡将消失。有了导航控制器,您将保持选项卡栏。希望这可以帮助到您。

enter image description here


这让我完成了99%的工作,唯一还需要做的就是在导航控制器上关闭“显示导航栏”。 - iCyberPaul

2
在viewWillAppear中尝试设置self.tabBarController.tabBar.translucent = NO;

0
您也可以尝试通过添加插座/操作来解除视图。例如,我遇到了一个问题,我有一个TabBar视图控制器,并且需要在其中一个选项卡上的2个不同视图(ImageViews)之间进行segue,但是一旦我执行传统的segue,整个选项卡都会消失。我创建了以下“返回按钮”以清除视图:
@IBAction func backBtnPressed(_ sender: AnyObject) {
     dismiss(animated: true, completion: nil)
  }

注意:清除视图是一项重要的实践,因为它们会随着时间的推移堆积起来,并降低应用程序的性能。

技术信息: https://developer.apple.com/reference/uikit/uiviewcontroller/1621505-dismiss

不确定这是否有帮助,但值得一提!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接