Ios 将数字线移动到另一个视图
大家好,早上好,我是一个新手,刚加入迅捷 我有表视图(列表)的名称和行号,它的工作很好 我想在何时加入任何名称,请在第二个视图中查看编号 我的代码在这里Ios 将数字线移动到另一个视图,ios,swift,swiftui,Ios,Swift,Swiftui,大家好,早上好,我是一个新手,刚加入迅捷 我有表视图(列表)的名称和行号,它的工作很好 我想在何时加入任何名称,请在第二个视图中查看编号 我的代码在这里 import SwiftUI struct ContentView: View { var mynames = allDatabase var body: some View { NavigationView { List { ForEach(myname
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")
]
替换
NavigationLink(destination: DDetail(name: namm.name)) {
与
首先,提问时要更具体,这样人们可以更容易地帮助你 无论如何 您正在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)!))
请尝试澄清您的问题我不明白您的问题无法将“Array.Index”(又名“Int”)类型的值转换为预期的参数类型“String”,将名称解析为字符串或使用“(self.mynames.firstIndex(of:namm)!)”
NavigationLink(destination: DDetail(name: self.mynames.firstIndex(of: namm)!))