【SwiftUI】NavigationBarを隠す方法

【SwiftUI】NavigationBarを隠す方法

実行環境

Swift5.6.1
Xcode14.0

結論

下のコードを、
NavigationViewの中で記述すればNavigationBarを消して隠すことが出来ます。

.navigationBarHidden(true)

実装

デモ動画

下のように、NavigationBarを隠します。
左上の戻るボタンも消えるため、遷移元に戻るコードも自作する必要があります。

今回の実装では、
遷移元→NavigationBarあり
遷移先→NavigationBarなし
を実現しています。

コーディング


遷移元のViewです。
特別に書き換えることはありません。
(このContentViewのNavigationBarも消したい場合は、このコードにも「.navigationBarHidden(true)」を加える必要があります。)

struct ContentView: View {
    var body: some View {
        NavigationView {
            NavigationLink(destination: SecondView()) {
                Text("次の画面へ")
            }
        }
    }
}


Viewの中で、「.navigationBarHidden(true)」にすればOKです。

struct SecondView: View {
    var body: some View {
        Color.green
            .navigationBarHidden(true)
    }
}

ちなみに…

ちなみに、
公式ドキュメントによれば「navigationBarHidden(_:)」は非推奨になっています。
以下のように書かれていました。

Deprecated
Use toolbar(_:for:) with the Visibility.hidden visibility and the navigationBar placement instead.

Apple公式ドキュメント(navigationBarHidden(_:))

日本語に直訳すると、
「Visibility.hidden と navigationBar の配置で toolbar(_:for:) を使用してください」
と書かれています。

この方法を使ってNavigationBarを隠すと、
iOS15+ くらいになりそうなので、
現状は「navigationBarHidden(_:)」を使うほうが良さそうなんですかね。

このあたり私も曖昧なので、何かあれば本記事下部のコメント欄からアドバイスください。

まとめ

ということで、本記事はNavigationBarを隠す方法を自分のメモ程度にまとめました。
全体のソースコードはこちらのGitHubからどうぞ。

アドバイスや改善などあれば本記事の最後のコメント欄からお願いします。
最後まで読んでいただきありがとうございました。

作業効率がグッと上がるPC道具

間違いなしのSwift書籍2冊



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です