---
title: DataScannerViewControllerDelegate
framework: visionkit
role: symbol
role_heading: Protocol
path: visionkit/datascannerviewcontrollerdelegate
---

# DataScannerViewControllerDelegate

A delegate object that responds when people interact with items that the data scanner recognizes.

## Declaration

```swift
@MainActor protocol DataScannerViewControllerDelegate : AnyObject
```

## Mentioned in

Scanning data with the camera

## Overview

Overview Implement this protocol to handle when people tap recognized items and, optionally, provide additional feedback when the data scanner updates the recognized items.

## Topics

### Customizing highlighting

- [dataScanner(_:didAdd:allItems:)](visionkit/datascannerviewcontrollerdelegate/datascanner(_:didadd:allitems:).md)
- [dataScanner(_:didUpdate:allItems:)](visionkit/datascannerviewcontrollerdelegate/datascanner(_:didupdate:allitems:).md)
- [dataScanner(_:didRemove:allItems:)](visionkit/datascannerviewcontrollerdelegate/datascanner(_:didremove:allitems:).md)

### Zooming

- [dataScannerDidZoom(_:)](visionkit/datascannerviewcontrollerdelegate/datascannerdidzoom(_:).md)

### Tapping items

- [dataScanner(_:didTapOn:)](visionkit/datascannerviewcontrollerdelegate/datascanner(_:didtapon:).md)

### Handling errors

- [dataScanner(_:becameUnavailableWithError:)](visionkit/datascannerviewcontrollerdelegate/datascanner(_:becameunavailablewitherror:).md)

## See Also

### Barcode and text scanning through the camera

- [Scanning data with the camera](visionkit/scanning-data-with-the-camera.md)
- [DataScannerViewController](visionkit/datascannerviewcontroller.md)
- [RecognizedItem](visionkit/recognizeditem.md)
