我正在尝试为我的模式表实现一个关闭按钮,如下所示:
struct TestView: View { @Environment(\.isPresented) var present var body: some View { Button("return") { self.present?.value = false } } } struct DataTest : View { @State var showModal: Bool = false var modal: some View { TestView() } var body: some View { Button("Present") { self.showModal = true }.sheet(isPresented: $showModal) { self.modal } } }
但是,在点击返回按钮时没有任何作用。显示模式时,控制台中将显示以下内容:
[WindowServer] display_timer_callback:意外状态(现在:5fbd2efe5da4 <预期:5fbd2ff58e89)
如果您强行打开包装,present
您会发现它是nil
如何以.sheet
编程方式解雇?
使用presentationMode
从@Environment
。
Beta 6
struct SomeView: View { @Environment(\.presentationMode) var presentationMode var body: some View { VStack { Text("Ohay!") Button("Close") { self.presentationMode.wrappedValue.dismiss() } } } }