除了我的框架之外,我有两种观点: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