【发布时间】:2020-05-03 16:18:01
【问题描述】:
我需要在我的NavigationView 的List .navigationBarItems(在导航栏上)中有一个“加号”⊕ 按钮,我想在列表中添加一行,使用后续视图导航层次结构以输入其名称等。
但首先,我什至无法让按钮正确导航!当我在预览画布中点击它时,按钮的操作似乎有效。然而在一个实际的应用程序中,当它导航到我的目标视图时,当我点击该视图的“
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“试图弹出到不存在的视图控制器。”
请给我建议如何修复以下代码?这个任务太常见了,我肯定错过了什么并且做错了。
import SwiftUI
struct ListItem: Identifiable {
var id = UUID()
var name: String
}
struct ContentView: View {
var listItems = [
ListItem(name: "List Item One"),
ListItem(name: "List Item Two")
]
var body: some View {
NavigationView {
List(listItems) { listItem in
NavigationLink(destination: DetailView(existingItem: listItem)) {
Text(listItem.name)
}
}
.navigationBarTitle(Text("Configure List Items"), displayMode: .inline)
.navigationBarItems(trailing:
NavigationLink(destination: DetailView(existingItem: nil)) {
Image(systemName: "plus")
.resizable()
.padding(6)
.frame(width: 24, height: 24)
.background(Color.blue)
.clipShape(Circle())
.foregroundColor(.white)
} )
}
}
}
struct DetailView: View {
var existingItem: ListItem?
var body: some View {
Text((existingItem != nil) ? "Edit existing: \(existingItem!.name)" : "Enter NEW List Item")
}
}
谢谢!顺便说一句,我在 macOS Catalina 10.15.2 上使用:Xcode 11.3.1
【问题讨论】:
标签: ios swift xcode swiftui navigationview