---
title: TVApplicationController
framework: tvmlkit
role: symbol
role_heading: Class
path: tvmlkit/tvapplicationcontroller
---

# TVApplicationController

An object that bridges the UI, navigation stack, storage, and event handling from JavaScript.

## Declaration

```swift
class TVApplicationController
```

## Mentioned in

Creating TVML Elements

## Overview

Overview The TVApplicationController class establishes the JavaScript environment and provides a centralized point of control and coordination between the JavaScript environment and tvOS.

## Topics

### Creating a New App Controller

- [init(context:window:delegate:)](tvmlkit/tvapplicationcontroller/init(context:window:delegate:).md)

### Controlling and Handling Events

- [evaluate(inJavaScriptContext:completion:)](tvmlkit/tvapplicationcontroller/evaluate(injavascriptcontext:completion:).md)
- [stop()](tvmlkit/tvapplicationcontroller/stop().md)

### Getting the Delegate

- [delegate](tvmlkit/tvapplicationcontroller/delegate.md)
- [TVApplicationControllerDelegate](tvmlkit/tvapplicationcontrollerdelegate.md)

### Examining App Controller Properties

- [context](tvmlkit/tvapplicationcontroller/context.md)
- [navigationController](tvmlkit/tvapplicationcontroller/navigationcontroller.md)
- [window](tvmlkit/tvapplicationcontroller/window.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### JavaScript Environment

- [Implementing a Hybrid TV App with TVMLKit](tvmlkit/implementing-a-hybrid-tv-app-with-tvmlkit.md)
- [TVApplicationControllerContext](tvmlkit/tvapplicationcontrollercontext.md)
