「押した数字=Modalに表示される数字」としたいのですが、
以下のコードで実行した場合、
初めに【2】を押すと、Modalは開かれるのですが、表示される値は【0】
その後、Modalを閉じ、【3】を押すと、Modalが開かれ、表示される値は【3】
1度目のタップでは「押した数字=Modalに表示される数字」が
上手く叶えられません。
どのように修正したら良いのでしょうか。
SwiftUI
1struct TappedNumber: View { 2 @State var isShowModal = false 3 @State var selectedNumber: Int = 0 { 4 willSet { 5 print("変更前=>\(self.selectedNumber)") 6 isShowModal = false 7 } 8 didSet { 9 print("変更後=>\(self.selectedNumber)") 10 isShowModal = true 11 } 12 } 13 var body: some View { 14 VStack { 15 ForEach(0...4, id: \.self) { index in 16 Text("\(index)") 17 .onTapGesture { 18 selectedNumber = index 19 } 20 .sheet(isPresented: $isShowModal) { 21 Text("\(selectedNumber)") 22 } 23 } 24 } 25 } 26}
あなたの回答
tips
プレビュー