【发布时间】:2019-08-21 06:06:10
【问题描述】:
我正在尝试在完成预期操作后关闭模式,但我不知道目前如何在 SwiftUI 中完成此操作。此模式由@State 值更改触发。是否可以通过观察各种通知来更改此值?
期望的操作:Root -> Initial Modal -> Presents Children -> Dismiss modal from any child
以下是我尝试过的
错误:转义闭包会捕获变异的“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()
}
}
}
}
ModalWithChildren 测试操作
Button(action: {
NotificationCenter.default.post(
name: .didCompletePageSave, object: nil)},
label: { Text("Close") })
【问题讨论】:
标签: ios swift uiview swiftui combine