大家好,早上好,我是SwiftUI的新手
我有带有名称和行号的表格视图(列表),并且工作正常
我想何时加入任何名称,在第二个视图中看到数字
我的代码在这里
import SwiftUI
struct ContentView: View {
var mynames = allDatabase
var body: some View {
NavigationView {
List {
ForEach(mynames[1 ... 4] , id: \.self) { namm in
NavigationLink(destination: DDetail(name: namm.name)) {
HStack(spacing: 5.0) {
Text("\(self.mynames.Index(of: namm)) -")
Text("\(namm.name)")
}
}
}
}
}
}
}
struct DDetail: View {
var name = ""
var body: some View {
VStack {
Text("This is Number :")
Text(name)
}
}
}
struct Database: Hashable {
var name: String
}
let allDatabase = [
Database(name: "Joy1"),
Database(name: "Joy2"),
Database(name: "Joy3"),
Database(name: "Joy4"),
Database(name: "Joy5"),
Database(name: "Joy6"),
Database(name: "Joy7")
]
答案 0 :(得分:1)
首先,在提问时要更加具体,这样人们可以更轻松地为您提供帮助。
反正..
您要在 DDetail 中创建一个新的名称,这将导致一个空名称。因为您要传递数据,所以无需声明新变量。以下代码将解决此问题:
struct DDetail: View {
// Edited following line:
var name: String
var body: some View {
VStack {
Text("This is Number :")
Text(name)
}
}
}
如果您要传递数字而不是名称,请使用:
NavigationLink(destination: DDetail(name: self.mynames.firstIndex(of: namm)!))
答案 1 :(得分:0)
替换
NavigationLink(destination: DDetail(name: namm.name)) {
使用
NavigationLink(destination: DDetail(name:"\(self.mynames.firstIndex(of: namm)!)")) {