【发布时间】:2020-12-19 17:01:45
【问题描述】:
我希望显示一个模式表,其中包含多个选项供用户选择。 (共享表就是一个很好的例子。)当用户进行选择时,选项表消失,第二个表出现,其中包含选定的选项。在共享表示例中,如果用户选择打印,则共享表向下滑动并弹出打印表。
我可以很容易地让选项表出现。但我还没有弄清楚如何让第二张纸出现。我尝试将工作表附加到一个空视图,然后使用 UserDefaults 设置激活第二个工作表的布尔值。什么都没有。
第一张纸
Button(action: {
UserDefaults.standard.set(true, forKey: showSelectedOption)
showOptionForm = true
}) {
Image(systemName: "square.and.arrow.up")
}
.sheet(isPresented: $showOptionForm) {
OptionView().environment(\.managedObjectContext, self.moc)
})
第二张表
EmptyView()
.sheet(isPresented: $showSelectedOption) {
SelectedOptionView().environment(\.managedObjectContext, self.moc)
}
我尝试在 .onAppear 中设置如下所示的布尔值,但是当模式表被解除时它不会被调用。有没有办法判断视图何时不再被工作表覆盖?在 UIKit 中它应该是presentationControllerDidDismiss(_:)。当然,这是假设我将第二张工作表附加到空视图的想法甚至是可行的。
let showSelectedOption = UserDefaults.standard.bool(forKey: "showSelectedOption")
【问题讨论】:
标签: modal-dialog swiftui