it-swarm.com.de

Wie kann man eine Navigationsleiste vor dem ersten ViewController in Swift ausblenden?

Wie kann ich eine Navigationsleiste vor dem ersten ViewController oder einem bestimmten ViewController schnell ausblenden? 

Ich habe den folgenden Code in viewDidLoad() verwendet:

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

und auch auf viewWillAppear:

override func viewWillAppear(animated: Bool) {
    self.navigationController?.isNavigationBarHidden = true
}

Beide Methoden verbergen den Navigationscontroller vor allen ViewControllern.

184
Aby Mathew

Wenn Sie wissen, dass für alle anderen Ansichten die Leiste sichtbar sein sollte, können Sie sie mit viewWillDisappear wieder sichtbar machen.

In Swift:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    navigationController?.setNavigationBarHidden(true, animated: animated)
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    navigationController?.setNavigationBarHidden(false, animated: animated)
}
140
wvteijlingen

Swift 3

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    // Hide the navigation bar on the this view controller
    self.navigationController?.setNavigationBarHidden(true, animated: animated)
}

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

    // Show the navigation bar on other view controllers
    self.navigationController?.setNavigationBarHidden(false, animated: animated)
}
230
Michael Garito

Sie können navigationController in viewWillDisappear einblenden.

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

Sie können hierfür auch eine Erweiterung erstellen, damit Sie die Erweiterung wiederverwenden können, ohne sie in jedem View-Controller immer wieder neu zu implementieren.

import UIKit

extension UIViewController {
    func hideNavigationBar(){
        // Hide the navigation bar on the this view controller
        self.navigationController?.setNavigationBarHidden(true, animated: true)

    }

    func showNavigationBar() {
        // Show the navigation bar on other view controllers
        self.navigationController?.setNavigationBarHidden(false, animated: true)
    }

}

So können Sie die Erweiterungsmethoden wie folgt verwenden

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        hideNavigationBar()
    }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        showNavigationBar()
    }
17
Ankahathara

In Swift 3 können Sie die isNavigationBarHidden-Eigenschaft auch zum Anzeigen oder Ausblenden der Navigationsleiste verwenden

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;
}
6
Dilip Jangid

So zeigen Sie die Navigationsleiste in Swift an:

self.navigationController?.setNavigationBarHidden(false, animated: true)
self.navigationController?.navigationBar.isHidden = false
self.navigationController?.isNavigationBarHidden = false
2

Möglichkeiten, die Navigationsleiste in Swift auszublenden:

self.navigationController?.setNavigationBarHidden(true, animated: true)
self.navigationController?.navigationBar.isHidden = true
self.navigationController?.isNavigationBarHidden = true
1

Sie können dies über die Fenstersteuerung (Swift3) tun.

class WindowController: NSWindowController {

    override func windowDidLoad() {
        super.windowDidLoad()

        window?.titleVisibility = .hidden
    }
}
0
Pedro Luz

Ich verwende eine Variante des obigen und isoliere Abschnitte meiner App, die in unterschiedliche NavController eingebettet werden sollen. Auf diese Weise muss ich die Sichtbarkeit nicht zurücksetzen. Zum Beispiel sehr nützlich bei Startvorgängen.

0
drew..

In IOS 8 machen Sie es gern 

navigationController?.hidesBarsOnTap = true

aber nur wenn es Teil eines UINavigationController ist 

machen Sie es falsch, wenn Sie es zurück wollen

0
Xar E Ahmer
 private func setupView() {
        view.backgroundColor = .white
        navigationController?.setNavigationBarHidden(true, animated: false)
    }
0
Wasim