SwiftUI - ForEach 循环中的弹出框

Posted

技术标签:

【中文标题】SwiftUI - ForEach 循环中的弹出框【英文标题】:SwiftUI - Popover in ForEach Loop 【发布时间】:2021-11-25 15:47:58 【问题描述】:

希望任何人都可以帮助我解决我在 SwiftUI 中遇到的问题。我在 ForEach 循环中显示 30 个按钮,这些按钮中的任何一个都应该有自己的弹出框。

我的代码目前看起来像这样:

ForEach(0..<30, id: \.self)  index in
                    
                    Button 
                        
                        presentPopover = true
                        
                     label: 
                        
                        ZStack 
                            
                            Rectangle()
                                .fill(.white)
                                .frame(width: 180, height: 55)
                                .cornerRadius(5)
                            
                            Text("Runde \(index + 1)")
                                .bold()
                                .font(.system(size: 24))
                                .foregroundColor(.black)
                        
                        
                    
                    .popover(isPresented: $presentPopover) 
                        GameSheetPopOverView(points: $points)
                    
                    
                    
                

如何使用 $isPresented 变量来实现这一点?目前,当我点击这些按钮之一时,什么也没有发生。这仅在我有没有 ForEach 循环的单个元素并且每个元素都有一个 $isPresented 变量时才有效。

希望你能帮忙。

提前致谢。

【问题讨论】:

ForEach 中的内容放在它自己的 View 中。 indexpoints 应该是参数 非常感谢,这行得通 【参考方案1】:

ForEach 中的内容放在它自己的View 中。 indexpoints 应该是参数——

【讨论】:

以上是关于SwiftUI - ForEach 循环中的弹出框的主要内容,如果未能解决你的问题,请参考以下文章

安卓中的弹出框

iOS 5 中的弹出框变化?

等效于 SpriteKit 中的弹出框

在 didSelectRowAtIndexPath 上关闭 ios 中的弹出框

CollectionView 中的弹出框

更改从 Swift 中的故事板创建的弹出框的箭头颜色