SwiftUI如何在UIBarButtonItem上添加动作?

问题描述 投票:0回答:1

我正在使用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的右侧显示按钮“完成”,但操作永远不会起作用。

ios swift uinavigationbar swiftui uinavigationitem
1个回答
0
投票

。navigationBarItems(跟踪:UIBarButtonItem(...

以上绝对不正确-您尝试传递UIKit对象而不是预期的View结构

以下绝对正确(已通过Xcode 11.2+测试)

NavigationView {
    // ... some view is here
    .navigationBarItems(trailing: Button("Done") { 
       print("Done something")
    })
}
© www.soinside.com 2019 - 2024. All rights reserved.