値を渡すといえば、SwiftUIでは基本となるのが@Binding(varやletでも渡すことが可能)
struct ParentView: View {
@State private var value = 42
var body: some View {
ChildView(value: $value)
}
}
struct ChildView: View {
@Binding var value: Int
var body: some View {
Text("Value: \(value)")
}
}
ナビゲーションリンクで値を渡す際はこのように書く
import SwiftUI
struct ContentView: View {
@State private var valueToPass = "Hello, World!"
var body: some View {
NavigationView {
NavigationLink(destination: DetailView(passedValue: valueToPass)) {
Text("Go to Detail View")
}
}
}
}
struct DetailView: View {
var passedValue: String
var body: some View {
Text("Passed Value: \(passedValue)")
}
}
でも最近ナビゲーションリンクじゃなくてナビゲーションマネージャー使うようになったからこれもつかわなくなってきた。
以上。
9/21 記事訂正済み