SwiftUI - 导航栏上的动态编辑按钮

SwiftUI - Dynamic Edit Button on Nav Bar

我是 Swift/SwiftUI 的新手 - 我正在开发一个简单的待办事项列表应用程序并尝试制作一个导航栏按钮,该按钮从内置编辑按钮更改为自定义按钮取决于状态变量。

我尝试使用如下所示的三元运算符

@State var addingItems: Bool = false

...

}.navigationBarItems(trailing: self.addingItems ? Button("Done", action: submitItems) : EditButton())

每个按钮在这里单独工作,但 Swift 不会让我这样混合它们。我收到类型不匹配的错误

Result values in '? :' expression have mismatching types 'Button<Text>' and 'EditButton'

有没有办法在编写自定义“编辑”按钮之外使这项工作正常进行?

谢谢

如果您只支持 iOS 14+,您应该使用工具栏 api

.toolbar {
 ToolbarItem(placement: .primary) {
    if self.addingItems {
       Button("Done", action: submitItems)
    } else {
       EditButton()
    }
 }
}