我想在模态呈现的视图的导航栏中添加一个关闭按钮。 但是,在关闭后,我的视图模型的< strong>deinit方法从未被调用。 我发现问题出在捕获< strong>self在navigationBarItem的地方。 我不能只将弱引用的weak self
传递到navigationBarItem的操作中,因为View是结构体,而不是类。 这是一个有效的问题还是只是知识不足?
struct ModalView: View {
@Environment(\.presentationMode) private var presentation: Binding<PresentationMode>
@ObservedObject var viewModel: ViewModel
var body: some View {
NavigationView {
Text("Modal is presented")
.navigationBarItems(leading:
Button(action: {
// works after commenting this line
self.presentation.wrappedValue.dismiss()
}) {
Text("close")
}
)
}
}
}