---
title: activityViewController
framework: uikit
role: symbol
role_heading: Instance Property
path: uikit/uiactivity/activityviewcontroller
---

# activityViewController

The view controller to present to the user.

## Declaration

```swift
var activityViewController: UIViewController? { get }
```

## Discussion

Discussion Subclasses that provide additional UI using a view controller can override this method to return that view controller. If this method returns a valid object, the system presents the returned view controller modally instead of calling the perform() method. Your custom view controller should provide a view with your custom UI and should handle any user interactions inside those views. Upon completing the activity, don’t dismiss the view controller yourself. Instead, call the activityDidFinish(_:) method and let the system dismiss it for you.

## See Also

### Performing the activity

- [canPerform(withActivityItems:)](uikit/uiactivity/canperform(withactivityitems:).md)
- [prepare(withActivityItems:)](uikit/uiactivity/prepare(withactivityitems:).md)
- [perform()](uikit/uiactivity/perform().md)
- [activityDidFinish(_:)](uikit/uiactivity/activitydidfinish(_:).md)
