前回の記事では、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)") } }
コメント