我试图在意图完成后关闭模态框,但目前我不知道在SwiftUI中如何实现。该模态框是由@State
值更改触发的。是否可能通过观察某些类型的通知来更改此值?
期望操作:根 -> 初始模态框 -> 呈现子项 -> 从任何子项关闭模态框
以下是我尝试过的:
错误:逃逸闭包会捕获可变的 'self' 参数
struct AContentView: View {
@State var pageSaveInProgress: Bool = false
init(pages: [Page] = []) {
// Observe change to notify of completed action
NotificationCenter.default.publisher(for: .didCompletePageSave).sink { (pageSaveInProgress) in
self.pageSaveInProgress = false
}
}
var body: some View {
VStack {
//ETC
.sheet(isPresented: $pageSaveInProgress) {
ModalWithChildren()
}
}
}
}
有子元素的模态框测试操作
Button(action: {
NotificationCenter.default.post(
name: .didCompletePageSave, object: nil)},
label: { Text("Close") })