How to hide a navigation bar from first ViewController in Swift?

前端 未结 12 1554
悲哀的现实
悲哀的现实 2020-11-30 17:03

How can I hide a navigation bar from first ViewController or a particular ViewController in swift?

I used the following code in viewDidLoad():

相关标签:
12条回答
  • 2020-11-30 17:13

    In IOS 8 do it like

    navigationController?.hidesBarsOnTap = true
    

    but only when it's part of a UINavigationController

    make it false when you want it back

    0 讨论(0)
  • 2020-11-30 17:14

    You can unhide navigationController in viewWillDisappear

    override func viewWillDisappear(animated: Bool)
    {
        super.viewWillDisappear(animated)
        self.navigationController?.isNavigationBarHidden = false
    }
    

    Swift 3

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
    
        self.navigationController?.setNavigationBarHidden(false, animated: animated)
    }
    
    0 讨论(0)
  • 2020-11-30 17:17

    I use a variant of the above, and isolate sections of my app to be embedded in differing NavControllers. This way, i don't have to reset visibility. Very useful in startup sequences, for example.

    0 讨论(0)
  • 2020-11-30 17:25

    Ways to hide Navigation Bar in Swift:

    self.navigationController?.setNavigationBarHidden(true, animated: true)
    self.navigationController?.navigationBar.isHidden = true
    self.navigationController?.isNavigationBarHidden = true
    
    0 讨论(0)
  • 2020-11-30 17:30

    In Swift 3, you can use isNavigationBarHidden Property also to show or hide navigation bar

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        // Hide the navigation bar for current view controller
        self.navigationController?.isNavigationBarHidden = true;
    }
    
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        // Show the navigation bar on other view controllers
       self.navigationController?.isNavigationBarHidden = false;
    }
    
    0 讨论(0)
  • 2020-11-30 17:32

    Call the set hide method in view Will appear and Disappear. if you will not call the method in view will disappear with status false.It will hide the navigation bar in complete navigation hierarchy

     override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        self.navigationController?.setNavigationBarHidden(true, animated: true)
    }
    
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        self.navigationController?.setNavigationBarHidden(false, animated:true)
    }
    
    0 讨论(0)
提交回复
热议问题