我正在使用SwiftUI,并且已在NavigationBar中添加Button,但是无法对该按钮设置操作。我尝试了这两种方法,但均失败了。
方法:1
.navigationBarTitle("\(task.label)")
.navigationBarItems(trailing: UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(self.actionName)))
但是我这里有这个错误
参数类型'UIBarButtonItem'与预期类型不符'查看'
方法:2
.navigationBarTitle("\(task.label)")
.navigationBarItems(trailing: NavigationBarButtonItem())
struct NavigationBarButtonItem : View {
var body : some View {
Button(action: {
print("Button Tapped")
}, label: {Text("Done")})
}
}
在这里,此打印语句永远不会运行,尽管在NavigationBar的右侧显示按钮“完成”,但操作永远不会起作用。
。navigationBarItems(跟踪:UIBarButtonItem(...
以上绝对不正确-您尝试传递UIKit对象而不是预期的View结构
以下绝对正确(已通过Xcode 11.2+测试)
NavigationView {
// ... some view is here
.navigationBarItems(trailing: Button("Done") {
print("Done something")
})
}