У меня есть два взгляда, кроме моего каркаса:
JSQRCodeScannerView
- вид с камеры
JSQRCodeInstructionsView
- это уменьшенный вид, занимающий около 40% нижней части экрана, как в Apple Maps на iOS
Прямо сейчас я пытаюсь использовать делегата для связи между двумя представлениями. В частности, когда сканирование завершено, я вызываю метод делегата с именем 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
срабатывать. Все работает до этого момента. Я пропускаю шаг или что-то не так с коммуникацией между двумя UIViews в фреймворке, который не будет работать?