Координатор SwiftUI: метод нельзя пометить @objc
Используя
UIViewController
в SwiftUI мне нужно назначить селекторы для двух кнопок. Те должны быть
@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
}
}
1 ответ
Решение
Вам не нужен просмотр там, поэтому просто используйте Any, если вам нужна подпись действия, например
@objc func dismissPreviewedScanTapped(sender: Any) {
}