# TestNavHostController

Artifact: [androidx.navigation:navigation-testing](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/testing/TestNavHostController.+class:androidx.navigation.testing.TestNavHostController) Added in [2.3.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.3.0)

*** ** * ** ***

Common/AllAndroid/JVM
- Cmn

  ```
  class TestNavHostController : NavHostController
  ```

|---|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) ||||
| ↳ | [androidx.navigation.NavController](https://developer.android.com/reference/kotlin/androidx/navigation/NavController) |||
|   | ↳ | [androidx.navigation.NavHostController](https://developer.android.com/reference/kotlin/androidx/navigation/NavHostController) ||
|   |   | ↳ | [androidx.navigation.testing.TestNavHostController](https://developer.android.com/reference/kotlin/androidx/navigation/testing/TestNavHostController) |

*** ** * ** ***

Subclass of `https://developer.android.com/reference/kotlin/androidx/navigation/NavHostController` that offers additional APIs for testing Navigation.

## Summary

| ### Public constructors |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/testing/TestNavHostController#TestNavHostController()()` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation/testing/TestNavHostController#TestNavHostController(android.content.Context)(context: https://developer.android.com/reference/android/content/Context.html)` | android |

| ### Public functions |
|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/navigation/testing/TestNavHostController#setCurrentDestination(kotlin.Int,android.os.Bundle)(destId: @https://developer.android.com/reference/kotlin/androidx/annotation/IdRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, args: https://developer.android.com/reference/android/os/Bundle.html)` Navigate directly to any destination on the current `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` via an explicit deep link. | android |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/navigation/testing/TestNavHostController#setCurrentDestination(kotlin.String,android.os.Bundle)(destRoute: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, args: https://developer.android.com/reference/android/os/Bundle.html)` Navigate directly to any destination on the current `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` via an explicit deep link. | android |

| ### Public properties |
|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry>` | `https://developer.android.com/reference/kotlin/androidx/navigation/testing/TestNavHostController#backStack()` Gets an immutable copy of the `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` currently on the back stack. | Cmn android |

### Inherited functions

From [androidx.navigation.NavController](https://developer.android.com/reference/kotlin/androidx/navigation/NavController) `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#addOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener)(
listener: https://developer.android.com/reference/kotlin/androidx/navigation/NavController.OnDestinationChangedListener
)`

Adds an `https://developer.android.com/reference/kotlin/androidx/navigation/NavController.OnDestinationChangedListener` to this controller to receive a callback whenever the `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#currentDestination()` or its arguments change.
Cmn android `inline https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation/NavController#clearBackStack()()`

Clears any saved state associated with KClass `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#clearBackStack()` that was previously saved via `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#popBackStack()` when using a `saveState` value of `true`.
Cmn android `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#clearBackStack(kotlin.Int)(destinationId: @https://developer.android.com/reference/kotlin/androidx/annotation/IdRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`

Clears any saved state associated with `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#clearBackStack(kotlin.Int)` that was previously saved via `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#popBackStack()` when using a `saveState` value of `true`.
android `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation/NavController#clearBackStack(kotlin.reflect.KClass)(route: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<T>)`

Clears any saved state associated with KClass `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#clearBackStack(kotlin.reflect.KClass)` that was previously saved via `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#popBackStack()` when using a `saveState` value of `true`.
Cmn android `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation/NavController#clearBackStack(kotlin.Any)(route: T)`

Clears any saved state associated with KClass `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#clearBackStack(kotlin.Any)` that was previously saved via `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#popBackStack()` when using a `saveState` value of `true`.
Cmn android `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#clearBackStack(kotlin.String)(route: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`

Clears any saved state associated with `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#clearBackStack(kotlin.String)` that was previously saved via `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#popBackStack()` when using a `saveState` value of `true`.
Cmn android `open https://developer.android.com/reference/kotlin/androidx/navigation/NavDeepLinkBuilder` `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#createDeepLink()()`

Create a deep link to a destination within this NavController.
android `inline https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation/NavController#getBackStackEntry()()`

Gets the topmost `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` for a route from `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html`.
Cmn android `open https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#getBackStackEntry(kotlin.Int)(destinationId: @https://developer.android.com/reference/kotlin/androidx/annotation/IdRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`

Gets the topmost `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` for a destination id.
android `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation/NavController#getBackStackEntry(kotlin.reflect.KClass)(route: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<T>)`

Gets the topmost `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` for a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#getBackStackEntry(kotlin.reflect.KClass)` from `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html`.
Cmn android `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation/NavController#getBackStackEntry(kotlin.Any)(route: T)`

Gets the topmost `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` for a route from an Object.
Cmn android `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#getBackStackEntry(kotlin.String)(route: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`

Gets the topmost `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` for a route.
Cmn android `open https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelStoreOwner` `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#getViewModelStoreOwner(kotlin.Int)(navGraphId: @https://developer.android.com/reference/kotlin/androidx/annotation/IdRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`

Gets the `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelStoreOwner` for a NavGraph.
android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#handleDeepLink(android.content.Intent)(intent: https://developer.android.com/reference/android/content/Intent.html?)`

Checks the given Intent for a Navigation deep link and navigates to the deep link if present.
android `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#handleDeepLink(androidx.navigation.NavDeepLinkRequest)(request: https://developer.android.com/reference/kotlin/androidx/navigation/NavDeepLinkRequest)`

Checks the given NavDeepLinkRequest for a Navigation deep link and navigates to the destination if present.
Cmn android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(androidx.navigation.NavUri)(deepLink: https://developer.android.com/reference/kotlin/androidx/navigation/NavUri)`

Navigate to a destination via the given deep link [Uri](https://developer.android.com/reference/android/net/Uri).
Cmn `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(android.net.Uri)(deepLink: https://developer.android.com/reference/android/net/Uri.html)`

Navigate to a destination via the given deep link [Uri](https://developer.android.com/reference/android/net/Uri).
android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(androidx.navigation.NavDirections)(directions: https://developer.android.com/reference/kotlin/androidx/navigation/NavDirections)`

Navigate via the given `https://developer.android.com/reference/kotlin/androidx/navigation/NavDirections`
android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(androidx.navigation.NavDeepLinkRequest)(request: https://developer.android.com/reference/kotlin/androidx/navigation/NavDeepLinkRequest)`

Navigate to a destination via the given `https://developer.android.com/reference/kotlin/androidx/navigation/NavDeepLinkRequest`.
Cmn android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(kotlin.Int)(resId: @https://developer.android.com/reference/kotlin/androidx/annotation/IdRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`

Navigate to a destination from the current navigation graph.
android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(androidx.navigation.NavUri,androidx.navigation.NavOptions)(deepLink: https://developer.android.com/reference/kotlin/androidx/navigation/NavUri, navOptions: https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions?)`

Navigate to a destination via the given deep link [Uri](https://developer.android.com/reference/android/net/Uri).
Cmn `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(android.net.Uri,androidx.navigation.NavOptions)(deepLink: https://developer.android.com/reference/android/net/Uri.html, navOptions: https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions?)`

Navigate to a destination via the given deep link [Uri](https://developer.android.com/reference/android/net/Uri).
android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(androidx.navigation.NavDirections,androidx.navigation.NavOptions)(directions: https://developer.android.com/reference/kotlin/androidx/navigation/NavDirections, navOptions: https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions?)`

Navigate via the given `https://developer.android.com/reference/kotlin/androidx/navigation/NavDirections`
android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(androidx.navigation.NavDirections,androidx.navigation.Navigator.Extras)(directions: https://developer.android.com/reference/kotlin/androidx/navigation/NavDirections, navigatorExtras: https://developer.android.com/reference/kotlin/androidx/navigation/Navigator.Extras)`

Navigate via the given `https://developer.android.com/reference/kotlin/androidx/navigation/NavDirections`
android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(androidx.navigation.NavDeepLinkRequest,androidx.navigation.NavOptions)(request: https://developer.android.com/reference/kotlin/androidx/navigation/NavDeepLinkRequest, navOptions: https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions?)`

Navigate to a destination via the given `https://developer.android.com/reference/kotlin/androidx/navigation/NavDeepLinkRequest`.
Cmn android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(kotlin.Int,android.os.Bundle)(resId: @https://developer.android.com/reference/kotlin/androidx/annotation/IdRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, args: https://developer.android.com/reference/android/os/Bundle.html?)`

Navigate to a destination from the current navigation graph.
android `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(kotlin.Any,kotlin.Function1)(route: T, builder: https://developer.android.com/reference/kotlin/androidx/navigation/NavOptionsBuilder.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)`

Navigate to a route from an Object in the current NavGraph.
Cmn android `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(kotlin.String,kotlin.Function1)(route: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, builder: https://developer.android.com/reference/kotlin/androidx/navigation/NavOptionsBuilder.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)`

Navigate to a route in the current NavGraph.
Cmn android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(androidx.navigation.NavUri,androidx.navigation.NavOptions,androidx.navigation.Navigator.Extras)(
deepLink: https://developer.android.com/reference/kotlin/androidx/navigation/NavUri,
navOptions: https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions?,
navigatorExtras: https://developer.android.com/reference/kotlin/androidx/navigation/Navigator.Extras?
)`

Navigate to a destination via the given deep link [Uri](https://developer.android.com/reference/android/net/Uri).
Cmn `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(android.net.Uri,androidx.navigation.NavOptions,androidx.navigation.Navigator.Extras)(
deepLink: https://developer.android.com/reference/android/net/Uri.html,
navOptions: https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions?,
navigatorExtras: https://developer.android.com/reference/kotlin/androidx/navigation/Navigator.Extras?
)`

Navigate to a destination via the given deep link [Uri](https://developer.android.com/reference/android/net/Uri).
android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(androidx.navigation.NavDeepLinkRequest,androidx.navigation.NavOptions,androidx.navigation.Navigator.Extras)(
request: https://developer.android.com/reference/kotlin/androidx/navigation/NavDeepLinkRequest,
navOptions: https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions?,
navigatorExtras: https://developer.android.com/reference/kotlin/androidx/navigation/Navigator.Extras?
)`

Navigate to a destination via the given `https://developer.android.com/reference/kotlin/androidx/navigation/NavDeepLinkRequest`.
Cmn android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(kotlin.Int,android.os.Bundle,androidx.navigation.NavOptions)(resId: @https://developer.android.com/reference/kotlin/androidx/annotation/IdRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, args: https://developer.android.com/reference/android/os/Bundle.html?, navOptions: https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions?)`

Navigate to a destination from the current navigation graph.
android `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(kotlin.Any,androidx.navigation.NavOptions,androidx.navigation.Navigator.Extras)(
route: T,
navOptions: https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions?,
navigatorExtras: https://developer.android.com/reference/kotlin/androidx/navigation/Navigator.Extras?
)`

Navigate to a route from an Object in the current NavGraph.
Cmn android `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(kotlin.String,androidx.navigation.NavOptions,androidx.navigation.Navigator.Extras)(
route: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html,
navOptions: https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions?,
navigatorExtras: https://developer.android.com/reference/kotlin/androidx/navigation/Navigator.Extras?
)`

Navigate to a route in the current NavGraph.
Cmn android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigate(kotlin.Int,android.os.Bundle,androidx.navigation.NavOptions,androidx.navigation.Navigator.Extras)(
resId: @https://developer.android.com/reference/kotlin/androidx/annotation/IdRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,
args: https://developer.android.com/reference/android/os/Bundle.html?,
navOptions: https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions?,
navigatorExtras: https://developer.android.com/reference/kotlin/androidx/navigation/Navigator.Extras?
)`

Navigate to a destination from the current navigation graph.
android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigateUp()()`

Attempts to navigate up in the navigation hierarchy.
Cmn android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#popBackStack()()`

Attempts to pop the controller's back stack.
Cmn android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#popBackStack(kotlin.Int,kotlin.Boolean)(destinationId: @https://developer.android.com/reference/kotlin/androidx/annotation/IdRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

Attempts to pop the controller's back stack back to a specific destination.
android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#popBackStack(kotlin.Int,kotlin.Boolean)(destinationId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Cmn `inline https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation/NavController#popBackStack(kotlin.Boolean,kotlin.Boolean)(inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, saveState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

Attempts to pop the controller's back stack back to a specific destination.
Cmn android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#popBackStack(kotlin.Int,kotlin.Boolean,kotlin.Boolean)(
destinationId: @https://developer.android.com/reference/kotlin/androidx/annotation/IdRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,
inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html,
saveState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html
)`

Attempts to pop the controller's back stack back to a specific destination.
android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#popBackStack(kotlin.Int,kotlin.Boolean,kotlin.Boolean)(destinationId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, saveState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Cmn `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation/NavController#popBackStack(kotlin.reflect.KClass,kotlin.Boolean,kotlin.Boolean)(
route: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<T>,
inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html,
saveState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html
)`

Attempts to pop the controller's back stack back to a specific destination.
Cmn android `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation/NavController#popBackStack(kotlin.Any,kotlin.Boolean,kotlin.Boolean)(route: T, inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, saveState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

Attempts to pop the controller's back stack back to a specific destination.
Cmn android `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#popBackStack(kotlin.String,kotlin.Boolean,kotlin.Boolean)(route: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, saveState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

Attempts to pop the controller's back stack back to a specific destination.
Cmn android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#removeOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener)(
listener: https://developer.android.com/reference/kotlin/androidx/navigation/NavController.OnDestinationChangedListener
)`

Removes an `https://developer.android.com/reference/kotlin/androidx/navigation/NavController.OnDestinationChangedListener` from this controller.
Cmn android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/CallSuper
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#restoreState(android.os.Bundle)(navState: https://developer.android.com/reference/android/os/Bundle.html?)`

Restores all navigation controller state from a SavedState.
android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/CallSuper
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#restoreState(androidx.savedstate.SavedState)(navState: https://developer.android.com/reference/kotlin/androidx/savedstate/SavedState?)`

Restores all navigation controller state from a SavedState.
Cmn `open https://developer.android.com/reference/kotlin/androidx/savedstate/SavedState?` `@https://developer.android.com/reference/kotlin/androidx/annotation/CallSuper
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#saveState()()`

Saves all navigation controller state to a SavedState.
Cmn android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
@https://developer.android.com/reference/kotlin/androidx/annotation/CallSuper
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#setGraph(kotlin.Int)(graphResId: @https://developer.android.com/reference/kotlin/androidx/annotation/NavigationRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`

Sets the `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` to the specified resource.
android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
@https://developer.android.com/reference/kotlin/androidx/annotation/CallSuper
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#setGraph(androidx.navigation.NavGraph,android.os.Bundle)(graph: https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph, startDestinationArgs: https://developer.android.com/reference/android/os/Bundle.html?)`

Sets the `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` to the specified graph.
android `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
@https://developer.android.com/reference/kotlin/androidx/annotation/CallSuper
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#setGraph(androidx.navigation.NavGraph,androidx.savedstate.SavedState)(graph: https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph, startDestinationArgs: https://developer.android.com/reference/kotlin/androidx/savedstate/SavedState?)`

Sets the `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` to the specified graph.
Cmn `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/MainThread
@https://developer.android.com/reference/kotlin/androidx/annotation/CallSuper
https://developer.android.com/reference/kotlin/androidx/navigation/NavController#setGraph(kotlin.Int,android.os.Bundle)(graphResId: @https://developer.android.com/reference/kotlin/androidx/annotation/NavigationRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, startDestinationArgs: https://developer.android.com/reference/android/os/Bundle.html?)`

Sets the `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` to the specified resource.
android From [androidx.navigation.NavHostController](https://developer.android.com/reference/kotlin/androidx/navigation/NavHostController) `final https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/navigation/NavHostController#enableOnBackPressed(kotlin.Boolean)(enabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

Set whether the NavController should handle the system Back button events via the registered `https://developer.android.com/reference/kotlin/androidx/activity/OnBackPressedDispatcher`.
android `final https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/navigation/NavHostController#setLifecycleOwner(androidx.lifecycle.LifecycleOwner)(owner: https://developer.android.com/reference/kotlin/androidx/lifecycle/LifecycleOwner)`

Sets the host's `https://developer.android.com/reference/kotlin/androidx/lifecycle/LifecycleOwner`.
Cmn android `final https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/navigation/NavHostController#setOnBackPressedDispatcher(androidx.activity.OnBackPressedDispatcher)(dispatcher: https://developer.android.com/reference/kotlin/androidx/activity/OnBackPressedDispatcher)`

Sets the host's `https://developer.android.com/reference/kotlin/androidx/activity/OnBackPressedDispatcher`.
android `final https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/navigation/NavHostController#setViewModelStore(androidx.lifecycle.ViewModelStore)(viewModelStore: https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelStore)`

Sets the host's ViewModelStore used by the NavController to store ViewModels at the navigation graph level.
Cmn android

### Inherited properties

From [androidx.navigation.NavController](https://developer.android.com/reference/kotlin/androidx/navigation/NavController) `open https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry?` `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#currentBackStackEntry()`

The topmost `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry`.
Cmn android `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html<https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry>` `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#currentBackStackEntryFlow()`

A `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html` that will emit the currently active `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` whenever it changes.
Cmn android `open https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination?` `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#currentDestination()`

The current destination.
Cmn android `open https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#graph()`

The topmost navigation graph associated with this NavController.
Cmn android `open https://developer.android.com/reference/kotlin/androidx/navigation/NavInflater` `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navInflater()`

The `https://developer.android.com/reference/kotlin/androidx/navigation/NavInflater` for this controller.
android `open https://developer.android.com/reference/kotlin/androidx/navigation/NavigatorProvider` `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigatorProvider()`

The NavController's `https://developer.android.com/reference/kotlin/androidx/navigation/NavigatorProvider`.
Cmn android `open https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry?` `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#previousBackStackEntry()`

The previous visible `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry`.
Cmn android `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-state-flow/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry>>` `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#visibleEntries()`

A `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-state-flow/index.html` that will emit the currently visible `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` whenever they change.
Cmn android

## Public constructors

### TestNavHostController

Cmn

```
TestNavHostController()
```

### TestNavHostController

android Added in [2.3.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.3.0)

```
TestNavHostController(context: Context)
```

## Public functions

### setCurrentDestination

android Added in [2.3.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.3.0)

```
fun setCurrentDestination(destId: @IdRes Int, args: Bundle = savedState()): Unit
```

Navigate directly to any destination on the current `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` via an explicit deep link. If an implicit deep link exists for this destination use #navigate(Uri) instead.

| Parameters |
|---|---|
| `destId: @https://developer.android.com/reference/kotlin/androidx/annotation/IdRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The destination id to navigate to. |
| `args: https://developer.android.com/reference/android/os/Bundle.html = savedState()` | The arguments to pass to the destination. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | If the `https://developer.android.com/reference/kotlin/androidx/navigation/testing/TestNavHostController#setCurrentDestination(kotlin.Int,android.os.Bundle)` does not exist on the NavGraph. |

### setCurrentDestination

android Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
fun setCurrentDestination(destRoute: String, args: Bundle = savedState()): Unit
```

Navigate directly to any destination on the current `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` via an explicit deep link. If an implicit deep link exists for this destination use #navigate(Uri) instead.

| Parameters |
|---|---|
| `destRoute: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The destination route to navigate to. |
| `args: https://developer.android.com/reference/android/os/Bundle.html = savedState()` | The arguments to pass to the destination. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | If the `https://developer.android.com/reference/kotlin/androidx/navigation/testing/TestNavHostController#setCurrentDestination(kotlin.String,android.os.Bundle)` does not exist on the NavGraph. |

## Public properties

### backStack

Cmn android Added in [2.3.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.3.0)

```
val backStack: List<NavBackStackEntry>
```

Gets an immutable copy of the `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` currently on the back stack.