【问题标题】:How do I remove tab bar when user navigates to another screen?当用户导航到另一个屏幕时如何删除标签栏?
【发布时间】:2016-06-07 15:52:27
【问题描述】:

我的目标只是在用户导航到特定屏幕时删除我的应用的标签栏,以便我有更多可用空间。

目前,我的故事板如下所示:

当用户点击一个按钮时,他们将被带到另一个屏幕,这是序列中的最后一个屏幕。我的目标是简单地删除标签栏,但保留导航。

如果我使用show detail segue,那么它会删除标签栏以及导航,这是我不想要的。

这是最后一个屏幕(但它仍然有标签栏):

【问题讨论】:

    标签: ios swift uitabbar


    【解决方案1】:

    您只需要在您希望隐藏它的视图控制器上设置hidesBottomBarWhenPushed = true。插入viewDidLoad()

    您也可以在子视图控制器的情节提要中进行设置

    【讨论】:

    • 此方法将调整标签等对象,或从标签到无标签的图像。就像一瞬间发生的一样
    【解决方案2】:

    您甚至可以在您的DestinationViewController 上将属性hidesBottomBarWhenPushed 设置为等于true。您可以在 prepareForSegue 方法覆盖中执行此操作。

    if let vc = segue.destinationViewController as? YOURVIEWCONTROLLER {
    
        vc.hidesBottomBarWhenPushed = true
    }
    

    这样,如果ViewController在其他情况下需要底栏,就会显示出来

    【讨论】:

      【解决方案3】:

      你可以像下面这样写prepareforsegue

       - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender    {
      
      segue.destinationViewController.hidesBottomBarWhenPushed = YES;
      
      // Get the new view controller using [segue destinationViewController].
      // Pass the selected object to the new view controller.
      }
      

      斯威夫特:

         override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
      
          segue.destinationViewController.hidesBottomBarWhenPushed = true
      
      }
      

      所以在目标视图控制器标签栏不会显示。

      根据您的问题,您可以在FirstTableViewcontroller 中实现,标签栏在TaretViewController 中将不可见。

      希望这会有所帮助:)

      【讨论】:

      • 这种做法有点奇怪,因为它会调整当前标签。例如 firstView 有选项卡,然后当转到另一个屏幕时,它会调整标签、图像等的大小。就像一瞬间发生的一样
      【解决方案4】:

      隐藏在视图中会消失

      self.tabBarController.tabBar.hidden = YES;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-09
        • 2019-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-09
        • 1970-01-01
        • 2020-09-29
        相关资源
        最近更新 更多