我需要在我的
NavigationView
的List
.navigationBarItems
中添加一个“Plus” ⊕ 按钮(位于导航栏右侧),我想使用导航层次结构中的后续视图来添加一行,并输入其名称等信息。
首先,我甚至无法正确导航按钮!当我在预览画布中点击它时,按钮的操作似乎有效。但是在实际应用程序中,尽管它确实导航到我的目标视图,但当我点击该视图的“<Back”按钮时,应用程序会崩溃,并显示以下错误信息:“终止应用程序,因为出现未捕获的异常'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。
Image(systemName: "plus.circle")
如果您想要默认的圆形添加图标;使用.font(.title)
等进行修改非常不错。 - Kevin Frost