A view that presents visual instructions that guide the user during session initialization and in limited tracking situations.


@interface ARCoachingOverlayView : UIView


This view offers your users a standardized on-boarding routine. You can configure this view to automatically display during session initialization and in limited tracking situations, while giving the user specific instructions that best facilitate ARKit's world tracking.

Screenshot of the various states that coaching overlay can be in, along with their respective textual user instructions.

When you start your app, the coaching overlay asks the user to move the device in ways that help ARKit establish tracking. When you choose a specific goal like finding a plane, the view tailors its instructions accordingly. If your app needs to relocalize, the view guides the user to assist ARKit with relocalization. After the coaching overlay determines the goal has been met and no further coaching is required, it hides from the user's view.

For an example app that uses the coaching overlay, see Placing Objects and Handling 3D Interaction.

Support Automatic Coaching

By default, activatesAutomatically is enabled and therefore you should override coachingOverlayViewWillActivate: to determine whether coaching is in progress. If interruptions cause ARKit to relocalize, coaching overlay will reappear and present helpful instructions to the user. Coordinate your actions to help the user focus on these instructions, for example, by hiding any UI that's not necessary during session initialization.


Delegating Events


An object you supply that implements coaching event callbacks.


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

Defining a Goal


A field that indicates your app's tracking requirements.


The options that specify your app's tracking requirements.

Activiting the View


A flag that indicates whether the coaching view activates automatically, depending on the current session state.


A flag that indicates whether coaching is in progress.

- setActive:animated:

Controls whether coaching is in progress.

Providing the Session


The session the view uses to provide coaching.


An object you designate that provides the current session.


Inherits From

See Also

World Tracking

Understanding World Tracking

Discover supporting concepts, features, and best practices for building great AR experiences.


A configuration that monitors the iOS device's position and orientation while enabling you to augment the environment that's in front of the user.


A 2D surface that ARKit detects in the physical environment.

Tracking and Visualizing Planes

Detect surfaces in the physical environment and visualize their shape and location in 3D space.

Placing Objects and Handling 3D Interaction

Place virtual content on real-world surfaces, and enable the user to interact with virtual content by using gestures.


The space-mapping state and set of anchors from a world-tracking AR session.

Saving and Loading World Data

Serialize a world tracking session to resume it later on.

Ray-Casting and Hit-Testing

Find 3D positions on real-world surfaces given a screen point.