<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "visionOS: 1.0.0 - 1.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "ARKit",
  "identifier" : "/documentation/ARKit/ARCoachingOverlayViewDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "ARKit"
    ],
    "preciseIdentifier" : "c:objc(pl)ARCoachingOverlayViewDelegate"
  },
  "title" : "ARCoachingOverlayViewDelegate"
}
-->

# ARCoachingOverlayViewDelegate

A set of callbacks you implement to be notified of coaching events.

```
protocol ARCoachingOverlayViewDelegate : NSObjectProtocol
```

## Overview

Implement a delegate to coordinate your app’s actions with coaching overlay. For example, when the coaching overlay determines the user needs guidance, you hide your app’s UI to allow the user to focus on the coaching experience. When the coaching overlay determines the [`goal`](/documentation/ARKit/ARCoachingOverlayView/goal-swift.property) is met, you show your app’s UI and begin your app’s AR experience.

## Topics

### Enabling Coaching

[`coachingOverlayViewWillActivate(_:)`](/documentation/ARKit/ARCoachingOverlayViewDelegate/coachingOverlayViewWillActivate(_:))

Tells you when the coaching overlay view activates.

[`coachingOverlayViewDidDeactivate(_:)`](/documentation/ARKit/ARCoachingOverlayViewDelegate/coachingOverlayViewDidDeactivate(_:))

Tells you when the coaching experience is completely deactivated.

### Restarting the Session

[`coachingOverlayViewDidRequestSessionReset(_:)`](/documentation/ARKit/ARCoachingOverlayViewDelegate/coachingOverlayViewDidRequestSessionReset(_:))

Tells you when the user taps the coaching overlay view’s Start Over button while the session is relocalizing.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)