如何在Swift中立即隐藏导航栏?

时间:2016-06-06 02:52:59

标签: ios swift uinavigationcontroller uinavigationbar

我的UIViewController嵌入在导航控制器中:

enter image description here

我尝试setNavigationBarHidden:animated:隐藏了通知栏。它有效,但延迟约2秒。这是截图:

enter image description here

我的用法是将其添加到viewDidLoad()

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

如何在启动屏幕时立即隐藏navigationbar

7 个答案:

答案 0 :(得分:13)

在ViewController初始化ViewController.navigationController?.setNavigationBarHidden(true, animated: false)

时隐藏navgationBar

答案 1 :(得分:3)

According the official document

  

每个应用必须提供启动文件或至少一个静态图像。

延迟是由主故事板文件中的启动屏幕引起的。请勿将启动屏幕文件设置为Main.storyboard文件。

Project settings > General -> App Icons and Launch Images -> Launch Screen File

enter image description here

将其设置为另一个故事板:

enter image description here

答案 2 :(得分:2)

添加此行indside view did load method

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

否则直接从StoreyBoard

执行此操作

//设置顶部栏无

enter image description here 我希望这会对你有所帮助。

答案 3 :(得分:2)

试试这个......

override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(animated)

    self.navigationController?.navigationBarHidden = true
}

答案 4 :(得分:2)

更好的方法是在viewWillLayoutSubviews()中实现您的代码。如果您使用导航或tapbar

,这是一种更好的方法

Swift 4

override func viewWillLayoutSubviews() {
    self.navigationController?.isNavigationBarHidden = true
}

答案 5 :(得分:1)

您需要在viewDidLoad()方法

中隐藏UINavigationBar
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.navigationBarHidden = true 
}

答案 6 :(得分:1)

对于swift 3: -

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