微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SwiftUI:在列表中选择项目时,模态视图不会关闭

如何解决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。如果我用字符串替换它,它可以正常工作。

知道为什么不能正确关闭对象吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。