问题描述
在 SwiftUI 中使用UIViewController
,我需要为两个按钮分配选择器。这些必须是@objc
,但我得到了错误:
struct ScanPreView: UIViewControllerRepresentable {
class Coordinator: NSObject {
var parent: ScanPreView
init(_ parent: ScanPreView) {
self.parent = parent
}
@objc func dismisspreviewedScanTapped(sender: ScanPreView) {
}
@objc func savePreviewedSceneTapped(sender: ScanPreView) {
}
}
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
func makeUIViewController(context: Context) -> ScenePreviewViewController {
let preview = ScenePreviewViewController(pointCloud: pointCloud,meshtexturing: meshtexturing,landmarks: nil)
preview.leftButton.addTarget(context.coordinator,action: #selector(Coordinator.dismisspreviewedScanTapped(sender:)),for: UIControl.Event.touchUpInside)
preview.rightButton.addTarget(context.coordinator,action: #selector(Coordinator.savePreviewedSceneTapped(sender:)),for: UIControl.Event.touchUpInside)
return preview
}
}
解决方法
您不需要在那里查看,因此,如果需要操作签名,请使用“任意”,例如
@objc func dismissPreviewedScanTapped(sender: Any) {
}