启动View Controller并删除Tap bar。迅速

时间:2016-05-05 12:17:30

标签: ios iphone xcode swift xcode7

我正在开发一个快速的应用程序。当我点击表格中的某个项目时,我需要打开一个新视图。那个很好但很好用,但标签栏的底部按钮仍然存在。我怎么能这样消失?

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

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

4 个答案:

答案 0 :(得分:1)

你可以隐藏导航栏。  在ViewMarcacaoController

中编写此代码
override func viewDidLoad() {

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

答案 1 :(得分:0)

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

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

所以在视图中会出现方法

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

隐藏底栏

self.tabBarController?.tabBar.hidden = true

答案 2 :(得分:0)

我在Michael Campsall中找到了here提供的出色解决方案。

解决方案主要包括:

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)
}

答案 3 :(得分:0)

在第二个屏幕上启用在推送时隐藏底栏在故事板中查看控制器,如下所示:

enter image description here

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

希望有所帮助......