swift - SwiftUI:在列表中选择项目时模式视图不会关闭
问题描述
使用 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。如果我用字符串替换它,它可以正常工作。
知道为什么 if 不能与对象正确关闭吗?
解决方案
推荐阅读
- javascript - 如何在我的 javascript 游戏中添加计数器?
- javascript - 将 jquery UI 对话标题栏 HTML 从 span 更改为 H2
- c# - 使用linq获取group by中最新记录的id
- python - 我想弄清楚最后如何添加结果,我应该怎么做?
- python - 结合图例图标 matplotlib
- ansible - 如何使用 lvg ansible 模块在顶部调整卷组的大小?
- kotlin - 流中收集的每个项目的唯一协程范围
- vuejs2 - 在阻塞操作之前在 Vue 异步监视中触发重新渲染
- python - 处理 request.content 时出现 json.loads 错误
- docker - 为什么运行 docker tomcat 后看不到 Tomcat?