<!--
{
  "availability" : [
    "iOS: 16.0.0 -",
    "iPadOS: 16.0.0 -",
    "macCatalyst: 16.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVRouting",
  "identifier" : "/documentation/AVRouting/AVCustomRoutingController",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVRouting"
    ],
    "preciseIdentifier" : "c:objc(cs)AVCustomRoutingController"
  },
  "title" : "AVCustomRoutingController"
}
-->

# AVCustomRoutingController

An object that manages the connection from a device to a destination.

```
class AVCustomRoutingController
```

## Overview

A routing controller also informs its [`delegate`](/documentation/AVRouting/AVCustomRoutingController/delegate) object about which routes the user previously authorized, so it can reconnect, if appropriate.

## Topics

### Managing authorization

[`var authorizedRoutes: [AVCustomDeviceRoute]`](/documentation/AVRouting/AVCustomRoutingController/authorizedRoutes)

A list of authorized routes.

[`class let authorizedRoutesDidChange: NSNotification.Name`](/documentation/AVRouting/AVCustomRoutingController/authorizedRoutesDidChange)

A notification the system posts when the list of authorized routes changes.

[`func invalidateAuthorization(for: AVCustomDeviceRoute)`](/documentation/AVRouting/AVCustomRoutingController/invalidateAuthorization(for:))

Revokes an app’s authorization to connect to a route.

### Configuring route addresses

[`var knownRouteIPs: [AVCustomRoutingPartialIP]`](/documentation/AVRouting/AVCustomRoutingController/knownRouteIPs)

An array of route addresses known to be on the local network.

[`class AVCustomRoutingPartialIP`](/documentation/AVRouting/AVCustomRoutingPartialIP)

An object that represents a full or partial IP address.

### Activating a route

[`func isRouteActive(AVCustomDeviceRoute) -> Bool`](/documentation/AVRouting/AVCustomRoutingController/isRouteActive(_:))

Returns a Boolean value that indicates whether a route is active.

[`func setActive(Bool, for: AVCustomDeviceRoute)`](/documentation/AVRouting/AVCustomRoutingController/setActive(_:for:))

Sets the active state of a route.

### Accessing the delegate

[`var delegate: (any AVCustomRoutingControllerDelegate)?`](/documentation/AVRouting/AVCustomRoutingController/delegate)

A delegate object for a routing controller.

### Customizing the user interface

[`var customActionItems: [AVCustomRoutingActionItem]`](/documentation/AVRouting/AVCustomRoutingController/customActionItems)

An array of custom action items to add to a route picker.

## Relationships

### Conforms To

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`Equatable`](/documentation/Swift/Equatable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`Hashable`](/documentation/Swift/Hashable)

[`CVarArg`](/documentation/Swift/CVarArg)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)