Ios SwiftUI如何在UIBarButtonItem上添加操作?
我使用的是SwiftUI,我在导航栏中添加了按钮,但我无法设置该按钮的操作。我尝试了这两种方法,但都失败了 方法:1Ios SwiftUI如何在UIBarButtonItem上添加操作?,ios,swift,uinavigationbar,swiftui,uinavigationitem,Ios,Swift,Uinavigationbar,Swiftui,Uinavigationitem,我使用的是SwiftUI,我在导航栏中添加了按钮,但我无法设置该按钮的操作。我尝试了这两种方法,但都失败了 方法:1 .navigationBarTitle("\(task.label)") .navigationBarItems(trailing: UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(self.actionName))) 但我这里有个错误 参数类型“uiBarButtoni
.navigationBarTitle("\(task.label)")
.navigationBarItems(trailing: UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(self.actionName)))
但我这里有个错误
参数类型“uiBarButtonim”与预期类型不符
“视图”
方法:2
.navigationBarTitle("\(task.label)")
.navigationBarItems(trailing: NavigationBarButtonItem())
struct NavigationBarButtonItem : View {
var body : some View {
Button(action: {
print("Button Tapped")
}, label: {Text("Done")})
}
}
在这里,这个打印语句永远不会运行,尽管导航栏右侧显示“完成”按钮,但操作永远不会工作
.navigationBarItems(尾随:UIBarButtonItem(
上述内容绝对不正确-您试图传递UIKit对象,而不是预期的视图结构
下面的一个肯定有效(使用Xcode 11.2+测试)
那么,复制粘贴“原样”的方法2中的代码也可以工作,所以原因可能不在这段代码中
它并没有提供您所有的代码,但我可以假设您将其放置在导航视图
之外,但doc说:
NavigationView {
// ... some view is here
.navigationBarItems(trailing: Button("Done") {
print("Done something")
})
}
/// This modifier only takes effect when this view is inside of and visible
/// within a `NavigationView`.