32 lines
881 B
Swift
32 lines
881 B
Swift
import SwiftUI
|
|
|
|
struct QRScannerRepresentable: UIViewControllerRepresentable {
|
|
@Binding var scannedCode: String?
|
|
|
|
func makeUIViewController(context: Context) -> QRScannerViewController {
|
|
let controller = QRScannerViewController()
|
|
controller.delegate = context.coordinator
|
|
return controller
|
|
}
|
|
|
|
func updateUIViewController(_ uiViewController: QRScannerViewController, context: Context) {}
|
|
|
|
func makeCoordinator() -> Coordinator {
|
|
Coordinator(scannedCode: $scannedCode)
|
|
}
|
|
|
|
final class Coordinator: NSObject, QRScannerViewControllerDelegate {
|
|
@Binding var scannedCode: String?
|
|
|
|
init(scannedCode: Binding<String?>) {
|
|
_scannedCode = scannedCode
|
|
}
|
|
|
|
func didScanCode(_ code: String) {
|
|
Task { @MainActor in
|
|
scannedCode = code
|
|
}
|
|
}
|
|
}
|
|
}
|