【问题标题】:Start View Controller and remove Tap bar. SWIFT启动 View Controller 并删除 Tap bar。迅速
【发布时间】:2016-05-05 21:14:47
【问题描述】:

我正在开发一个快速应用程序。我需要当我单击表格内的一个项目时,它会打开一个新视图。这很好并且可以工作,但是标签栏的底部按钮仍然存在。这个消失怎么办?

用于调用下一个屏幕的代码。我已经测试了一些不同的方法,但这是唯一可以正常工作的方法。我认为这不是这里的问题。

func irParaMarcacoes(nome:String){
    let next:ViewMarcacaoController = storyboard?.instantiateViewControllerWithIdentifier("ViewMarcacaoController") as! ViewMarcacaoController
    next.projNome = nome;
    self.navigationController?.pushViewController(next, animated: true)
}

This is what I have, the first screen

This is what I want the tap bar to disappear

感谢您的关注。

*使用 XCode 7.3

【问题讨论】:

  • 这不是导航栏,你试图隐藏的是标签栏。在 viewDidLoad() 中尝试 self.tabBarController?.tabBar.hidden = true
  • 是的!这是正确的!这是点击栏!刚刚编辑。谢谢

标签: ios iphone xcode swift xcode7


【解决方案1】:

您可以隐藏导航栏。 把这段代码写在ViewMarcacaoController

override func viewDidLoad() {

    super.viewDidLoad()
    self.navigationController?.navigationBarHidden = true
}

【讨论】:

    【解决方案2】:

    您正在从导航栏推送视图控制器

    所以你推送的控制器是它的顶视图控制器

    所以在视图中会出现方法

    self.navigationController!.setNavigationBarHidden(true, animated: animated)
    

    隐藏底栏

    self.tabBarController?.tabBar.hidden = true
    

    【讨论】:

    • 对不起.. o 可能表达自己错了。我认为名称不是导航栏,而是点击栏。我希望顶部栏留下,但底部栏消失。谢谢
    • self.tabBarController?.tabBar.hidden = true 会有所帮助
    • 当我在点击栏内单击时,这项工作有效吗?我可以使用函数来做到这一点吗?例如,在我想要的时候强制它消失,而无需等待用户在点击栏中点击?
    • 你能解释一下你到底想要什么吗?
    • 我现在找到了方法!非常感谢您的关注。我将在下面发布我发现的内容!
    【解决方案3】:

    我在here 中找到了Michael Campsall 提供的一个很好的解决方案。

    解决方案主要包括:

    func setTabBarVisible(visible:Bool, animated:Bool) {
    
    //* This cannot be called before viewDidLayoutSubviews(), because the frame is not set before this time
    
        // bail if the current state matches the desired state
        if (tabBarIsVisible() == visible) { return }
    
        // get a frame calculation ready
        let frame = self.tabBarController?.tabBar.frame
        let height = frame?.size.height
        let offsetY = (visible ? -height! : height)
    
        // zero duration means no animation
        let duration:NSTimeInterval = (animated ? 0.3 : 0.0)
    
        //  animate the tabBar
        if frame != nil {
            UIView.animateWithDuration(duration) {
                self.tabBarController?.tabBar.frame = CGRectOffset(frame!, 0, offsetY!)
                return
            }
        }
    }
    
    func tabBarIsVisible() ->Bool {
        return self.tabBarController?.tabBar.frame.origin.y < CGRectGetMaxY(self.view.frame)
    }
    

    【讨论】:

      【解决方案4】:

      启用 Hide Bottom bar on Push 在情节提要中的第二个屏幕视图控制器上,如下所示:

      所以当你推动你的视图控制器时,它会隐藏底部的标签栏。当您回到 firstViewController 时,将显示标签栏。无需为此编写代码。

      希望对你有帮助..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-18
        • 1970-01-01
        相关资源
        最近更新 更多