【发布时间】:2021-03-31 23:37:50
【问题描述】:
我有一个简单的 SwiftUI 项目,当我单击任何列表项时,我想路由新视图。下面,我尝试将它用于设置和通知列表项,但它会抛出错误,我不知道为什么?我在互联网上搜索,但没有找到任何可以帮助我的解决方案。有什么想法吗?
内容视图:
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
List(contacts) { contact in
NavigationLink(destination: SettingsView(contact: contact)) {
ContactRow(contact: contact)
}
}
.navigationBarTitle("Contacts")
}
.environment(\.colorScheme, .light)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
struct ContactRow: View {
let contact: Settings
var body: some View {
HStack {
Image(contact.imageName)
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: 20, height: 20)
VStack(alignment: .leading) {
Text(contact.name)
.font(.system(size: 21, weight: .medium, design: .default))
}}}}
Settings.swift:
import SwiftUI
struct Settings: Identifiable {
let imageName: String
let name: String
let id = UUID()
}
let contacts = [
Settings(imageName: "settings", name: "Settings"),
Settings(imageName: "notifications", name: "Notifications"),
]
设置视图:
struct SettingsView: View {
let contact: Settings
var body: some View {
Text("hey")
}
}
struct SettingsView_Previews: PreviewProvider {
static var previews: some View {
SettingsView(contact: contacts[0])
}}
通知视图:
struct NotificationsView: View {
let contact: Settings
var body: some View {
Text("hey")
}
}
struct NotificationsView_Previews: PreviewProvider {
static var previews: some View {
NotificationsView(contact: contacts[1])
}}
【问题讨论】:
-
您遇到了哪个错误?
-
@Asperi,这是行不通的。
-
@Asperi 它总是跳转同一个视图,我想跳转新视图,当我点击新项目时
-
“它跳转到同一个视图”是什么意思?它会在列表中保留在您的视图中吗?
-
还是跳转到显示“嘿”的视图。你想要一些不同的东西吗?