<!--
{
  "availability" : [
    "iOS: 10.0.0 -",
    "iPadOS: 10.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.14.0 -",
    "tvOS: 10.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 3.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UserNotifications",
  "identifier" : "/documentation/UserNotifications/UNUserNotificationCenterDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "User Notifications"
    ],
    "preciseIdentifier" : "c:objc(pl)UNUserNotificationCenterDelegate"
  },
  "title" : "UNUserNotificationCenterDelegate"
}
-->

# UNUserNotificationCenterDelegate

An interface for processing incoming notifications and responding to notification actions.

```
protocol UNUserNotificationCenterDelegate : NSObjectProtocol
```

## Overview

Use the methods of the [`UNUserNotificationCenterDelegate`](/documentation/UserNotifications/UNUserNotificationCenterDelegate) protocol to handle user-selected actions from notifications, and to process notifications that arrive when your app is running in the foreground. After implementing these methods in an object, assign that object to the [`delegate`](/documentation/UserNotifications/UNUserNotificationCenter/delegate) property of the shared [`UNUserNotificationCenter`](/documentation/UserNotifications/UNUserNotificationCenter) object. The user notification center object calls the methods of your delegate at appropriate times.

> Important:
> You must assign your delegate object to the ``doc://com.apple.usernotifications/documentation/UserNotifications/UNUserNotificationCenter`` object before your app finishes launching. For example, in an iOS app, you must assign it in the <doc://com.apple.documentation/documentation/UIKit/UIApplicationDelegate/application(_:willFinishLaunchingWithOptions:)> or <doc://com.apple.documentation/documentation/UIKit/UIApplicationDelegate/application(_:didFinishLaunchingWithOptions:)> method of your app delegate. Assigning a delegate after the system calls these methods might cause you to miss incoming notifications.

For information about the shared user notification center object, see [`UNUserNotificationCenter`](/documentation/UserNotifications/UNUserNotificationCenter).

## Topics

### First Steps

[Handling notifications and notification-related actions](/documentation/UserNotifications/handling-notifications-and-notification-related-actions)

Respond to user interactions with the system’s notification interfaces, including handling your app’s custom actions.

### Handling the Selection of Custom Actions

[`userNotificationCenter(_:didReceive:withCompletionHandler:)`](/documentation/UserNotifications/UNUserNotificationCenterDelegate/userNotificationCenter(_:didReceive:withCompletionHandler:))

Asks the delegate to process the user’s response to a delivered notification.

### Receiving Notifications

[`userNotificationCenter(_:willPresent:withCompletionHandler:)`](/documentation/UserNotifications/UNUserNotificationCenterDelegate/userNotificationCenter(_:willPresent:withCompletionHandler:))

Asks the delegate how to handle a notification that arrived while the app was running in the foreground.

[`UNNotificationPresentationOptions`](/documentation/UserNotifications/UNNotificationPresentationOptions)

Constants indicating how to present a notification in a foreground app.

[`UNNotificationPresentationOptionNone`](/documentation/UserNotifications/UNNotificationPresentationOptionNone)

No alert.

### Displaying Notification Settings

[`userNotificationCenter(_:openSettingsFor:)`](/documentation/UserNotifications/UNUserNotificationCenterDelegate/userNotificationCenter(_:openSettingsFor:))

Asks the delegate to display the in-app notification settings.



---

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)