
SwiftUIView上でsheetの開閉を行いたいのですが、できません。
アプリ立ち上げ時、sheetが開いてtestview内クラス実行時sheetが閉じる動作を想定しています。
アプリ立ち上げ時sheetは立ち上がってきますが、isShowingをfalseにしてもsheetが消えません。
sheetを閉じる様にしたいのですが、どのようにすれば良いでしょうか?
swift
1@ObservedObject var test:test = test() 2 3Button(action:{ 4 test.isShowing.toggle() 5 }){ 6 Text("クリック") 7 } 8 .sheet(isPresented: $test.isShowing){ 9 testView() 10 }
swift
1class test:ObservableObject { 2 @Published var isShowing: Bool = true 3 func testFunc(){ 4 isShowing = false 5 } 6}
分かり辛くて申し訳ありません。
全部のコード若干変わりますが下記に載せます。
sheet(SecondView)を開いて閉じる動作を期待していますが、できない状況です。
追加コード
swift
1 2//ContentView 3import SwiftUI 4 5struct ContentView: View { 6 @ObservedObject var test:testClass = testClass() 7 var body: some View { 8 VStack { 9 Button(action:{ 10 test.def.toggle() 11 }){ 12 Text("クリック") 13 } 14 .sheet(isPresented: $test.def){ 15 SecondView() 16 } 17 } 18 .padding() 19 } 20} 21 22class testClass: ObservableObject{ 23 @Published var def:Bool = false 24} 25 26struct ContentView_Previews: PreviewProvider { 27 static var previews: some View { 28 ContentView() 29 } 30}
swift
1//SecondView 2import SwiftUI 3 4struct SecondView: View { 5 @ObservedObject var def = testClass() 6 var body: some View { 7 Button(action:{ 8 def.def = false 9 }){ 10 VStack{ 11 Text("閉じる") 12 } 13 } 14 } 15}

「isShowingをfalseにしても」の具体的な処理はtestFunc()メソッドなのかな?と思いますが、
このメソッドを呼び出している部分も質問欄のコードにご記載いただけますでしょうか?

回答1件
あなたの回答
tips
プレビュー