【问题标题】:TabBarController disappears when I segue back to the view from another view当我从另一个视图回到视图时,TabBarController 消失
【发布时间】:2020-01-01 12:21:52
【问题描述】:

我有一个嵌入在导航控制器中的 viewController。然后这个导航控制器被嵌入到一个标签栏控制器中。

我有另一个 viewController 不应该从 tabBarController 访问。它应该只能从第一个 viewController 使用按钮访问。从 secondViewController 中,我制作了一个 UIBarButtonItem 以移回原始视图。从第一个视图到第二个视图,反之亦然,我使用 Storyboard 引用在视图之间来回移动。

但是,当我从第一个视图移动到第二个视图时,标签栏控制器会消失(就像它应该的那样)。当我回到第一个视图时,标签栏控制器消失了,我不能再在标签之间移动了。

我试过包括:

self.hidesBottomBarWhenPushed = false

在第一个视图和

self.hidesBottomBarWhenPushed = true

第二个视图

似乎没有任何效果。每次我从第二个视图移动到第一个视图时,标签栏控制器都会消失。

【问题讨论】:

  • 你用什么方法添加这个self.hidesBottomBarWhenPushed = false
  • 你如何“回到原来的视图”?两个视图控制器之间应该只有 一个 故事板引用。由于它们嵌入在导航控制器中,您可以简单地推送和弹出第二个视图控制器。
  • 嗨 André,那么我只需要一个故事板参考吗?那么如何从第二个视图控制器移动到第一个视图控制器呢?
  • 嗨,Vinu,我把它放在 viewDidAppear 中
  • 在你的 ViewWillAppear() 方法中添加 self.hidesBottomBarWhenPushed = false 这个。

标签: ios swift uitabbarcontroller segue


【解决方案1】:

你应该使用

 override func viewWillDisappear(_ animated: Bool) {
    self.tabBarController?.tabBar.isHidden = false
}

在放置后退按钮的那个控制器中,我在我的一个应用程序中使用了确切的场景。

【讨论】:

    【解决方案2】:

    您遵循了错误的层次结构。您实际上是在使用 seagues 来回移动。每次您尝试返回第一个控制器时,这都会创建一个新实例。

    让我们说清楚:

    您需要遵循以下方法:

    1您有两个控制器 A 和 B。

    2 在控制器 A 的 viewDidLoad 或 viewWillAppear 中使用 self.hidesBottomBarWhenPushed = true。

    3 控制器 A 嵌入在导航控制器中,该控制器进一步嵌入在 UITabBarController 中。

    点击控制器 A 中的按钮,您需要推送到控制器 B。因此,您可以为此使用 segue,也可以像这样以编程方式进行操作:

    let controllerB = B()
    A.navigationController?.pushViewController(controllerB, animated: true)
    

    4 点击 UIBarButtonItem 返回控制器 A。所以你在 UIBarButtonItem 动作中的代码应该是这样的:

    self.navigationController?.popViewController(animated: true)
    

    请记住,您不应该继续返回之前的控制器。

    【讨论】:

    • 嘿,我有点困惑。那么如何从控制器 B 回到控制器 A 呢?如果我要使用这个:self.navigationController?.popViewController(animated: true)
    • PopViewController 会为您做到这一点。用于弹回之前的控制器。
    • 太棒了!编码愉快!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多