2014-09-11 178 views
3

我正在展示一个加载屏幕,我不想显示导航栏。所以我用介绍UINavigationController Swift

self.navigationController.navigationBar.hidden = true

其中的伎俩和隐藏导航栏。但是,当我想要显示导航栏时,我想将其设置为动画。

我已尝试使用此代码,但不显示该栏。

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

运行上面的代码栏仍有隐忧之后,我怎么能显示/动画吧?

+0

什么控制器或控制器在这些语句,你在哪里给他们打电话?你如何加载屏幕进入屏幕? – rdelmar 2014-09-11 01:56:53

回答

5

我认为你的方法已经正确。你只需要知道代码的放置位置。尝试下面的代码。

代码视图控制器1

import UIKit 

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.navigationController?.navigationBarHidden = true; 
    } 

    override func viewDidAppear(animated: Bool) { 
     super.viewDidAppear(animated) 
     self.navigationController?.navigationBarHidden = true; 
    } 

    @IBAction func buttonTapped(sender: UIButton) { 
     self.performSegueWithIdentifier("goToScreen2", sender: self) 
    } 
} 

代码视图控制器2

import UIKit 

class ViewController2: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    override func viewDidAppear(animated: Bool) { 
     super.viewDidAppear(animated) 
     self.navigationController?.setNavigationBarHidden(false, animated: true) 
    } 
} 

更新答:

我能够用取消隐藏导航栏下面码。实施

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navigationController?.navigationBarHidden = true; 
} 

@IBAction func buttonTapped(sender: UIButton) { 
    self.navigationController?.setNavigationBarHidden(false, animated: true) 
} 

屏幕截图: -

enter image description here

+0

我不改变VC的,我隐藏在'viewDidLoad'的导航栏,并等待一个JSON响应。一旦我得到数据,我想关闭加载屏幕,然后显示导航栏。 – Clip 2014-09-11 03:54:09

+1

查看更新后的答案,我可以使用无任何问题的按钮取消隐藏。我刚测试过。我认为你做错了什么。可能是你没有在故事板上正确实现导航控制器。参见:http://stackoverflow.com/questions/25777465/calling-segue-programatically-not-working/25778229#25778229 – Ricky 2014-09-11 04:08:20