---
title: "popToRootTemplate(animated:completion:)"
framework: carplay
role: symbol
role_heading: Instance Method
path: "carplay/cpinterfacecontroller/poptoroottemplate(animated:completion:)"
---

# popToRootTemplate(animated:completion:)

Removes all of the templates from the navigation hierarchy except the root template.

## Declaration

```swift
func popToRootTemplate(animated: Bool, completion: ((Bool, (any Error)?) -> Void)? = nil)
```

```swift
func popToRootTemplate(animated: Bool) async throws -> Bool
```

## Parameters

- `animated`: If doc://com.apple.documentation/documentation/Swift/true, CarPlay animates the transition between templates.
- `completion`: The closure CarPlay calls after it removes the required templates.

## Discussion

Discussion important: You can call this method from synchronous code using a completion handler, as shown on this page, or you can call it as an asynchronous method that has the following declaration: func popToRootTemplate(animated: Bool) async throws -> Bool For information about concurrency and asynchronous code in Swift, see Calling Objective-C APIs Asynchronously. CarPlay calls completion after it removes all of the required templates. The Boolean parameter is true if CarPlay removes all of the templates successfully; otherwise, it’s false and CarPlay provides an error that describes the failure. CarPlay throws an exception if it can’t remove the templates and you don’t provide a closure.

## See Also

### Adding and Removing Templates

- [pushTemplate(_:animated:completion:)](carplay/cpinterfacecontroller/pushtemplate(_:animated:completion:).md)
- [popTemplate(animated:completion:)](carplay/cpinterfacecontroller/poptemplate(animated:completion:).md)
- [pop(to:animated:completion:)](carplay/cpinterfacecontroller/pop(to:animated:completion:).md)
