JSQRCodeInstructionsView

JSQRCodeInstructionsView

除了我的框架之外,我有两种观点:


JSQRCodeScannerView是摄像机视图
JSQRCodeInstructionsView是较小的视图,大约占屏幕底部的40%,就像在iOS上的Apple Maps中一样


现在,我正在尝试使用委托在两个视图之间进行通信。具体来说,当扫描完成时,我调用了一个名为didScanSuccessfully()的委托方法,目的是在JSQRCodeInstructionsView类中使用该委托方法来更新其标签。

JSQRCodeScannerView

protocol JSQRCodeScannerViewDelegate: AnyObject {
    func didScanQRCodeSuccessfully()
}

class JSQRCodeScannerView: UIView {

    weak var delegate: JSQRCodeScannerViewDelegate?


    func scanIsCompleted() {
        delegate?.didScanQRCodeSuccessfully()
    }

}


JSQRCodeInstructionsView

class JSQRCodeInstructionsView: UIView, JSQRCodeScannerViewDelegate {

      func didScanQRCodeSuccessfully() {
          //Update label
      }

}


现在,我无法启动JSQRCodeInstructionsView中的委托方法。一切工作到那时。我是否错过了一个步骤,或者在一个框架中两个UIView之间的通信有问题,而这是行不通的?

最佳答案

也许代表是“无”。
尝试将JSQRCodeInstructionsView设置为某个地方的JSQRCodeScannerViewDelegate委托,如下所示:

jsQRCodeScannerViewInstance.delegate = jsQRCodeInstructionsViewInstance

10-08 12:35