.sheet 的 ForEach 循环问题

时间:2021-01-08 02:53:19

标签: swift webview swiftui

我正在开发一个应用程序,它通过一个 ForEach 循环遍历一个数组,它使用数组中每个项目的 URL 来运行。 问题是,当我将 URL 分配给链接然后将其传递到 webview 时,它第一次不起作用,但每次都正确加载 URL。例如,如果链接预设为 www.google.com,点击的第一个对象将显示 google,但如果有意义,其余的将显示正确的链接。如果您想对此进行屏幕录制,请告诉我。

代码如下:

struct ContentView: View {
    @State var isPresented = false
    @State var link: String = ""
    
    
    var body: some View {
        ZStack{
            NavigationView {
                ZStack {
                    ScrollView {
                        ZStack {
                            LazyVStack(spacing: 10) {
                                ForEach(model, id: \.self) { i in
                                    ZStack{
                                        HStack{
                                            VStack(alignment: .leading, spacing: 10){
                                                Text(i.headline)
                                                    .fontWeight(.medium)
                                                    .lineLimit(6)
                                                    .padding()
                                            }
                                        }
                                    }
                                    .cornerRadius(20)
                                    .frame(height: 120)
                                    .onTapGesture() {
                                        link = i.url
                                        if self.link == i.url{
                                            self.isPresented.toggle()
                                        }
                                    }
                                }
                            }
                            .padding(.horizontal)
                            .padding(.top)
                        }
                        
                    }.sheet(isPresented: self.$isPresented) {
                        webView(url: link)
                    }
                }
            }
        }
    }
}

0 个答案:

没有答案