Contents

UIActivity

An abstract class that you subclass to implement app-specific services.

Declaration

class UIActivity

Mentioned in

Overview

You should subclass UIActivity only if you want to provide custom services to people. A service takes data that’s passed to it, does something to that data, and returns the results. For example, a social media service might take whatever text, images, or other content is provided to it and post them to a person’s account. Activity objects are used in conjunction with a UIActivityViewController object, which is responsible for presenting services to people.

The system already provides support for many standard services and makes them available through the UIActivityViewController object. For example, the standard activity view controller supports emailing data, posting items to one of a person’s social media accounts, and several other options. You don’t have to provide custom services for any of the built-in types.

Subclassing notes

This class must be subclassed before it can be used. The job of an activity object is to act on the data provided to it and to provide some meta information that iOS can display to people. For more complex services, an activity object can also display a custom user interface and use it to gather additional information from people.

Methods to override

When subclassing, you must always override the following methods and use them to provide information about your service:

If your canPerform(withActivityItems:) method indicates that your subclass is able to operate on the specified data, the active UIActivityViewController object displays your service to people. When a person selects your service, the activity view controller calls the prepare(withActivityItems:) method followed by only one of these methods:

  • activityViewController — Returns a view controller to present to a person. If your service requires additional input from a person, override this method and use it to return the view controller object responsible for presenting your custom UI. (You don’t need to present the view controller yourself.) After your view controller object gathers the needed input, it’s responsible for initiating the task associated with the service.

  • perform() — Performs the service without displaying any additional UI. If your service doesn’t need additional input from a person, override this method and perform the task associated with the service.

Topics

Getting the activity information

Performing the activity

See Also

Services