A standard feature for mobile development, a navigation controller manages a stack of screens (where the stack can be finite, infinite, and clearable), handling switching between screens, back navigation, storing and restoring screen states, screen transition animations, and also handles deep-linking.
Some example implementations:
- Apple: https://developer.apple.com/documentation/uikit/uinavigationcontroller?language=objc
- Android: https://developer.android.com/reference/androidx/navigation/NavController
- You.i TV: https://developer.youi.tv/API_Docs/5.7/core/html/group__screen-management.html
Note that this feature is especially useful in games, too!