web-dev-qa-db-ja.com

Swiftで最初のViewControllerからナビゲーションバーを隠すには?

最初のViewControllerまたは特定のViewControllerからナビゲーションバーを非表示にするにはどうすればよいですか。

私はviewDidLoad()で次のコードを使いました。

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

viewWillAppearについても同様です。

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

両方のメソッドとも、すべてのViewControllerからナビゲーションコントローラを隠します。

202
Aby Mathew

他のすべてのビューでバーを表示する必要があることがわかっている場合は、viewWillDisappearを使用して再度表示に設定できます。

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

スイフト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)
}
237
Michael Garito

navigationControllerviewWillDisappearを表示することができます

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

スイフト3

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

    self.navigationController?.setNavigationBarHidden(false, animated: animated)
}
74
Deepesh

このための拡張を作成することもできます。そのため、すべてのView Controllerでこれを何度も実装しなくても拡張を再利用できます。

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

}

だから、あなたは以下のように拡張メソッドを使用することができます

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

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

Swift 3では、isNavigationBarHiddenプロパティを使用してナビゲーションバーを表示または非表示にすることもできます。

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

Swiftでナビゲーションバーを表示する方法:

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

Swiftでナビゲーションバーを非表示にする方法:

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

あなたはウィンドウコントローラからそれをすることができます(Swift3)

class WindowController: NSWindowController {

    override func windowDidLoad() {
        super.windowDidLoad()

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

私は上記の変種を使用して、異なるNavControllerに埋め込まれるように私のアプリのセクションを分離します。このように、私は可視性をリセットする必要はありません。たとえば、スタートアップシーケンスで非常に便利です。

0
drew..

IOS 8では好きですか

navigationController?.hidesBarsOnTap = true

それが UINavigationControllerの一部になっている場合に限ります

戻したいときはfalseにします

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