SwiftUI 领域数据库问题将获取的数据传递到另一个视图

问题描述 投票:0回答:1

我正在使用领域数据库,在获取列表数据并使用点击手势属性转到详细视图后我遇到了问题,它只显示我的领域数据库中的第一组数据。 我将展示一些图片来说明。

这就是我的清单的样子

这是单击时的详细视图,无论您单击什么,它都只显示第一组数据。

 ForEach(realmManger.patterns, id: \.id) { userPattern in
                                
patternCell(title: userPattern.title ?? "Error??", date: userPattern.dateCreated ?? Date.now)
.onTapGesture {
 editPattern = true
}.sheet(isPresented: $editPattern) {
patternEdit(userPattern: userPattern)
  .environmentObject(realmManger)
  }
}

代码太长我试图展示什么是重要的

struct patternEdit: View {
    
    @EnvironmentObject var realmManger:RealmManger
    @State var showAlert = false
    
    let userPattern:Patterns
    
    var body: some View {
   
                Text(userPattern.title ?? "Error")
                    .font(.title)
                    .foregroundColor(Color("lightBlue"))
                    .padding()

}

这是详细视图的代码,为什么它只显示第一个数据?

ios swift swiftui realm crud
1个回答
0
投票

.sheet()
ForEach
循环中取出并使用
.sheet(item: ...)
, 就像在这个示例代码中使用
 @State var selectedPattern: ...

 @State var selectedPattern: Patterns?  // <-- here
 // ...
 
 var body: some View {
     // ...
     ForEach(realmManger.patterns, id: \.id) { userPattern in
         patternCell(title: userPattern.title ?? "Error??", date: userPattern.dateCreated ?? Date.now)
             .onTapGesture {
                 selectedPattern = userPattern  // <-- here
             }
     }
     .sheet(item: $selectedPattern) { userPattern in  // <-- here
         patternEdit(userPattern: userPattern)
             .environmentObject(realmManger)
     }
 // ...
 }
 

根据您的目的调整示例代码。

© www.soinside.com 2019 - 2024. All rights reserved.