![](/img/trans.png)
[英]SwiftUI: Checkmarks disappear when changing from one view to another using NavigationLink
[英]Passing the data from one view to another SwiftUI via NavigationLink
我正在使用 SwiftUI 构建一个 iOS 应用程序。 老实说,我是 SwiftUI 和 Swift 以及 Native IOS 开发的新手。 我现在要做的是尝试通过 NavigationLink 将数据从一个屏幕传递到另一个屏幕。 但是目标提供程序的 PreviewProvider 抛出错误。
我有带有以下代码的 ContentView.swift
struct ContentView: View {
var listItems = [ BleDevice ]()
init() {
listItems.append(BleDevice(id: "ID 1", name: "Name 1"))
listItems.append(BleDevice(id: "ID 2", name: "Name 2"))
}
var body: some View {
NavigationView {
VStack() {
List{
ForEach(listItems) {
item in VStack() {
Text(item.id)
Text(item.name)
NavigationLink(destination: ServicesListView(device: item)) {
Text("Connect")
.padding()
.foregroundColor(/*@START_MENU_TOKEN@*/.blue/*@END_MENU_TOKEN@*/)
Spacer()
}
}
}.navigationTitle("Devices")
}
}
}
.padding()
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
如您所见,我正在尝试将设备对象传递给目标视图。 这是我的 ServicesListView.swift
import SwiftUI
struct ServicesListView: View {
var device: BleDevice
var body: some View {
Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/)
}
}
struct ServicesListView_Previews: PreviewProvider {
static var previews: some View {
ServicesListView()
}
}
但是,当我尝试编译该项目时,ServicesListView_Previews 类正在抱怨“调用中的参数‘设备’缺少参数”,如下所示。 我知道这是因为它没有使用参数初始化 ServicesListView 类。 但是我怎样才能将数据传递给它呢?
对于预览,只需像这样传递静态数据
struct ServicesListView_Previews: PreviewProvider {
static var previews: some View {
ServicesListView(device: BleDevice(id: "ID 1", name: "Name 1"))
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.