3

我对 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'

有没有办法在编写自定义编辑按钮之外使这项工作?

谢谢

4

1 回答 1

1

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

.toolbar {
 ToolbarItem(placement: .primary) {
    if self.addingItems {
       Button("Done", action: submitItems)
    } else {
       EditButton()
    }
 }
}
于 2021-04-09T03:12:31.497 回答