SwiftUI协调器:无法将方法标记为@objc

问题描述

SwiftUI 中使用UIViewController,我需要为两个按钮分配选择器。这些必须是@objc,但我得到了错误:

无法将方法标记为@objc,因为无法在Objective-C中表示参数的类型

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
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)