【问题标题】:After using a storyboard segue the Tab bar is not showing使用情节提要后,标签栏未显示
【发布时间】:2020-01-20 10:44:44
【问题描述】:

有一些类似的问题,但不完全相同,有些是相当古老的。 基本上,在我按下按钮执行 performSegue 之后,标签栏就会丢失。

视图控制器布局在情节提要中,但我以编程方式将文本和按钮放入其中。 Segues 1 和 2 是情节提要的 segues,属于“Present Modally”。在右上角的视图控制器中,当按下其中一个按钮时,它会设置一个变量并执行 Segue 2。这是 Tab Bar 不可见的地方。

Segue 3 是一个关系 segue,当它被选中时您可以看到(第一张图片),它会在“第二视图”上显示标签栏。但在第二张图片中,它显示选择了 segue 2 并且缺少标签栏。

我这样称呼 segue 2:

performSegue(withIdentifier: "ShowChapter", sender: self)

根据我读到的内容,我想我可能需要一个导航控制器。目前我没有导航控制器,所以要测试我的代码,我必须停止执行并重新开始。

如果有人能告诉我如何在 segue 2 之后显示标签栏,将不胜感激。

【问题讨论】:

  • 在 Navigation Controller 中嵌入你的控制器,并将 segue 类型更改为 Push,而不是 Modal。
  • Keshu R. 我将 Book Menu 和 Second View 视图控制器放在 Navigation 控制器中。右上角的空白视图控制器是否也需要进入导航控制器?我还将segue更改为Push,但是在segue之后Tab栏仍然没有显示

标签: ios swift


【解决方案1】:

请取消选中在情节提要中推送时隐藏底部栏。

【讨论】:

    【解决方案2】:
    1. 使用 unwind @IBAction 创建自定义 UITabbarController

      class CustomTabBarViewController: UITabBarController {
      
          @IBAction func unwindToVC2(segue: UIStoryboardSegue) {
              dismiss(animated: true) {
                  self.selectedIndex = 1
              }
          }
      
      }
      
    2. 在模态显示的视图控制器中创建手动展开转场(从 File's Owner 按住 ctrl 拖动到 Exit)并将其标识符设置为“segueFromVCXToVC2”

    3. 在模式呈现的视图控制器中执行自定义展开转场

      performSegue(withIdentifier: "segueFromVCXToVC2", sender: nil)
      

    这将关闭一个模态视图控制器并选择标签栏视图控制器的第二个标签

    【讨论】:

    • 感谢您的建议 Adob​​els。您的解决方案对我来说很有意义,但我不知道将代码放在第 1 步中的哪个位置。我将它放在 BookMenu 视图控制器文件中的一个单独的类中,但是展开 segue 现在不会用到这个展开函数,比如如果 unwind 函数在视图控制器类中,它会。应该去哪里?
    • 我认为我的项目中没有任何 UITabBarController 代码。
    【解决方案3】:

    Adobels 解决方案走上了正轨,我试过了,但没有奏效。 最后,诀窍是视图控制器右上角的一个按钮,它执行了 self.dismiss,然后更改了 tabbarcontroller 选择的索引。

    这是一个按钮调用的函数。 (章节选择按钮)

    @objc func selectChapter(button: UIButton) {
        CurrentChapter = button.tag
        self.dismiss(animated: false, completion: nil)
        if let tabBarController = self.presentingViewController as UITabBarController {
            tabBarController.selectedIndex = 1
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-29
      • 1970-01-01
      • 2015-09-13
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      • 2012-01-13
      相关资源
      最近更新 更多