SwiftUI NavigationStackの使い方【初心者向け解説】

SwiftUIのiOS16以降で導入されたNavigationStackは、従来のNavigationViewの後継となる新しいナビゲーションコンポーネントです。従来よりも柔軟で管理しやすくなっています。

この記事では、SwiftUI初心者向けにNavigationStackの基本的な使い方を紹介します。

1. NavigationStackの基本構造

import SwiftUI

struct ContentView: View {
    var body: some View {
        NavigationStack {
            NavigationLink("詳細画面へ") {
                DetailView()
            }
            .navigationTitle("ホーム画面")
        }
    }
}

struct DetailView: View {
    var body: some View {
        Text("詳細画面です")
    }
}

ポイント: NavigationStack 内に NavigationLink を配置するのが基本です。

2. 複数画面を管理する

NavigationStackは「スタック構造」なので、複数の画面を積み重ねて管理できます。

NavigationStack {
    List(0..<5) { index in
        NavigationLink("Item \(index)") {
            Text("詳細画面 \(index)")
        }
    }
}

3. パスを使った画面遷移管理

@State で path を管理すると、コードから画面遷移を制御できます。

Intの配列pathの最後に値を設定すると.navigationDestinationの処理が起動され遷移が行われます。

@State private var path = [Int]()

NavigationStack(path: $path) {
    List(0..<5) { index in
        Button("Go to \(index)") {
            path.append(index)
        }
    }
    .navigationDestination(for: Int.self) { value in
        Text("画面 \(value)")
    }
}

まとめ

NavigationStackは、従来のNavigationViewよりも直感的に画面遷移を管理できるのが特徴です。まずは基本的なNavigationLinkの使い方から始めて、徐々にパス管理による高度な遷移に挑戦してみましょう。

コメントを残す

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

CAPTCHA