<!--
{
  "availability" : [
    "iOS: 14.0.0 -",
    "iPadOS: 14.0.0 -",
    "macCatalyst: 14.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CarPlay",
  "identifier" : "/documentation/CarPlay/CPInformationTemplate",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "CarPlay"
    ],
    "preciseIdentifier" : "c:objc(cs)CPInformationTemplate"
  },
  "title" : "CPInformationTemplate"
}
-->

# CPInformationTemplate

A template that provides information for a point of interest, food order, parking location, or charging location.

```
@MainActor class CPInformationTemplate
```

## Overview

An information template displays a list of items, and up to three actions the user can perform.

You use an information template to display informative, actionable content to the user. For example, you might display a summary of the user’s food order, and provide actions to place or cancel the order.

When creating an information template, you populate the list with an array of [`CPInformationItem`](/documentation/CarPlay/CPInformationItem) objects, and provide any contextual actions as an array of [`CPTextButton`](/documentation/CarPlay/CPTextButton) objects. The template then arranges the list’s items using your choice of layout — see [`CPInformationTemplateLayout`](/documentation/CarPlay/CPInformationTemplateLayout) for more information.

To display an information template, call your interface controller’s [`pushTemplate(_:animated:completion:)`](/documentation/CarPlay/CPInterfaceController/pushTemplate(_:animated:completion:)) method to push it onto the navigation hierarchy, or [`presentTemplate(_:animated:completion:)`](/documentation/CarPlay/CPInterfaceController/presentTemplate(_:animated:completion:)) to present it modally.

> Note:
> You can’t use `CPInformationTemplate` in apps with the audio entitlement.

## Topics

### Creating an Information Template

[`-  initWithTitle:layout:items:actions:`](/documentation/CarPlay/CPInformationTemplate/init(title:layout:items:actions:))

Creates an information template that displays the provided items using the chosen layout.

### Accessing the Layout

[`layout`](/documentation/CarPlay/CPInformationTemplate/layout)

The layout that the template uses to arrange its items.

[`CPInformationTemplateLayout`](/documentation/CarPlay/CPInformationTemplateLayout)

The layout that an information template uses to arrange its items.

### Managing the Title

[`title`](/documentation/CarPlay/CPInformationTemplate/title)

The template’s title.

### Managing the Items

[`items`](/documentation/CarPlay/CPInformationTemplate/items)

The items that the template displays.

[`CPInformationItem`](/documentation/CarPlay/CPInformationItem)

A data object that provides content for an information template.

[`CPInformationRatingItem`](/documentation/CarPlay/CPInformationRatingItem)

A data object that provides rated content for an information template.

### Managing the Actions

[`actions`](/documentation/CarPlay/CPInformationTemplate/actions)

The actions that the template displays.

## Relationships

### Conforms To

[`Equatable`](/documentation/Swift/Equatable)

[`NSCoding`](/documentation/Foundation/NSCoding)

[`CVarArg`](/documentation/Swift/CVarArg)

[`CPBarButtonProviding`](/documentation/CarPlay/CPBarButtonProviding)

[`Sendable`](/documentation/Swift/Sendable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Hashable`](/documentation/Swift/Hashable)

[`NSSecureCoding`](/documentation/Foundation/NSSecureCoding)

### Inherits From

[`CPTemplate`](/documentation/CarPlay/CPTemplate)

---

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)