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

时间:2021-04-21 04:53:09

标签: swift swiftui swiftui-list

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

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

0 个答案:

没有答案