---
title: CPInterfaceControllerDelegate
framework: carplay
role: symbol
role_heading: Protocol
path: carplay/cpinterfacecontrollerdelegate
---

# CPInterfaceControllerDelegate

The interface that an object implements to serve as a delegate to an interface controller.

## Declaration

```swift
@MainActor protocol CPInterfaceControllerDelegate : NSObjectProtocol
```

## Topics

### Handling Display Events

- [templateWillAppear(_:animated:)](carplay/cpinterfacecontrollerdelegate/templatewillappear(_:animated:).md)
- [templateDidAppear(_:animated:)](carplay/cpinterfacecontrollerdelegate/templatedidappear(_:animated:).md)
- [templateWillDisappear(_:animated:)](carplay/cpinterfacecontrollerdelegate/templatewilldisappear(_:animated:).md)
- [templateDidDisappear(_:animated:)](carplay/cpinterfacecontrollerdelegate/templatediddisappear(_:animated:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Configuring the Interface Controller

- [delegate](carplay/cpinterfacecontroller/delegate.md)
- [prefersDarkUserInterfaceStyle](carplay/cpinterfacecontroller/prefersdarkuserinterfacestyle.md)
- [setRootTemplate(_:animated:completion:)](carplay/cpinterfacecontroller/setroottemplate(_:animated:completion:).md)
