iOS/SwiftUI

[SwiftUI] Coordinator

HarryJeonn 2022. 5. 2. 19:03

SwiftUI를 사용하면서 Delegate를 사용하기위해 사용!

 

 

// Coordinator
    func makeCoordinator() -> Coordinator {
        return Coordinator()
    }
    
    class Coordinator: NSObject, AVCaptureMetadataOutputObjectsDelegate {
        func metadataOutput(_ output: AVCaptureMetadataOutput, didOutput metadataObjects: [AVMetadataObject], from connection: AVCaptureConnection) {
            if metadataObjects.count == 0 {
                return
            }
            
            guard let metaObject = metadataObjects[0] as? AVMetadataMachineReadableCodeObject else { return }
            
            if metaObject.type == AVMetadataObject.ObjectType.qr {
                if let outputValue = metaObject.stringValue {
                    print(outputValue)
                }
            }
        }
    }

Delegate를 사용해야 할 때 Coordinator 사용

Coordinator 클래스를 만들어주고 makeCoordinator()로 return한다.

Coordinator 클래스안에서 Delegate 상속받아서 UIKit처럼 구현한다.

 

 

제가 틀렸거나 다른 의견이 있으시다면 댓글로 남겨주시면 감사하겠습니다 :)