使用 SwiftUI,我打开了这样的模式视图:
Button(action: {
self.showingFlightsView.toggle()
}) {
Image(systemName: "airplane.circle")
}
.sheet(isPresented: $showingFlightsView) {
FlightsView(flights: self.$flights, selectedFlight: self.$selectedFlight, flightPhase: $flightPhase)
}
然后尝试以这种方式在列表选择中关闭它:
// MARK: Select flight button
Button(action: {
UserDefaults.standard.set(flight.id, forKey: "selection")
self.presentationMode.wrappedValue.dismiss()
print("Flight selected: \(flight.id)")
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
self.flightPhase = 0
self.selectedFlight = flight
}
}) {
问题是,如果我不使用 dispatchqueue 的技巧,模态视图不会关闭(除非使用向下滑动)。 selectedFlight 是一个可选的对象 Flight。如果我用字符串替换它,它可以正常工作。
知道为什么不能正确关闭对象吗?