Navigationタイトルなどで表示/非表示を切り替える方法 【.toolbar(.hidden)】

この記事は約2分で読めます。

NavigationStackは、リンク先の子ビューにおいて左上に前に戻る用のナビゲーションが自動で表示されるなど非常に便利な機能です。

  • iOS:16.0以上
  • XCode(当サイトの環境):15.0.1

稀に子ビューではナビゲーションを表示させたくないなどのシーンがあると思いますが、.toolbar(.hidden)を使用することで表示/非表示を切り替えることが出来ます。

Home画面
子ビュー

コード例

下記ののようにナビゲーションを表示させたくないビューのモディファイアとして『.toolbar(.hidden)』を付与すると非表示にできます。

import SwiftUI

struct HiddenToolBarSmp: View {
    var body: some View {
        NavigationStack {
            NavigationLink ("Tap Link Button") {
                Text("Child View")
                    .toolbar(.hidden)
            }
            .navigationTitle("Home")
        }
    }
}

赤枠部分にナビゲーションが表示されなくなります。

非表示箇所の指定

上記のコード例では非表示にする対象を指定せずに、使用しましたが、下記のようにnavigationBarのみ非表示にすることやtabBarのみ非表示にしたりも可能です。

.toolbar(.hidden, for: .navigationBar)

for:の後に非表示にしたいコンポーネントを以下から指定します。

  • navigationBar
  • tabBar
  • bottomBar

まとめ

利用シーンは限られますが、このような機能もありますので、覚えておくといざという時に役に立つのではないでしょうか。

タイトルとURLをコピーしました