実現したいこと
Modal遷移時に値を渡したい。
発生している問題・エラーメッセージ
以下のコードを実行した際に、showを押してもText("aaa")の方が表示されてします。
ただなぜか、一度Modalを閉じてもう一度開くとSubViewが表示されます。
一度目からSubViewにしたいのですがどこが悪いのかがわかりません。
Buttonのactionでself.studentには値を設定しているので、正しいように見えるのですが。。
ご教示いただければ幸いです。
該当のソースコード
swift
1import SwiftUI 2 3class Student: ObservableObject { 4 var name: String 5 6 init(name: String) { 7 self.name = name 8 } 9} 10 11struct ContentView: View { 12 @State private var student: Student? 13 @State private var show = false 14 15 var body: some View { 16 VStack(spacing: 10) { 17 Button(action: { 18 let newStudent = Student(name: "bbb") 19 self.student = newStudent 20 self.show = true 21 }, label: { 22 Text("Show") 23 }) 24 } 25 .sheet(isPresented: self.$show, content: { 26 if let student = self.student { 27 SubView(student: student) 28 } else { 29 Text("aaa") 30 } 31 }) 32 } 33} 34 35struct SubView: View { 36 @ObservedObject var student: Student 37 38 var body: some View { 39 TextField("生徒名", text: self.$student.name) 40 } 41}
補足情報(FW/ツールのバージョンなど)
Xcode 14.1(14B47b)
CPU:Apple M1
OS:Venture 13.0.1

回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。