[SwiftUI] NavigationView で画面遷移先にデータを渡す方法 

SwiftUI SwiftUI

前回の記事では、NavigationVIew を使用することで画面遷移をする方法を紹介しました。
今回は、画面遷移をするときに遷移先にデータを渡す方法fについて説明します。

スポンサーリンク

環境

OS: macOS Big Sur 11.2.1
Xcode: 12.5
Swift: 5.2.4

スポンサーリンク

遷移先の画面にデータを渡す方法

画面遷移時にデータを渡すには、遷移先の View にあらかじめデータ受け取り用のプロパティを実装しておきます。プロパティは、受け取るデータに合わせて、変数や構造体、クラス型にします。あとは、遷移元から遷移先の View がプロパティに値をセットして遷移することでデータを渡すことができます。
以下に例を示します。
この例では、遷移先の View(この例では TargetView 構造体)に itemName というプロパティを実装しています。遷移元の View (この例では ContentView)から遷移先の View を呼び出す時に(6行目)、itemName プロパティに値をセットします。これにより、画面遷移時に値が渡されます。

struct ContentView: View {
    let fruit = ["リンゴ🍎","ミカン🍊","バナナ🍌","ぶどう🍇","パイナップル🍍"]
    var body: some View {
        NavigationView {
            List(fruit, id: \.self) { fruit in
                NavigationLink(destination: TargetView(itemName: fruit)) {
                    Text(fruit)
                }
            }
        }
    }
}

struct TargetView: View {
    let itemName: String
    
    var body: some View {
         Text("\(itemName)")
    }
}
NavigationView で画面遷移先にデータを渡す例

NavigationView で画面遷移先にデータを渡す例

コメント

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