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

# CNContactPickerViewController

A view controller that displays an interface for picking contacts.

```
class CNContactPickerViewController
```

## Overview

A [`CNContactPickerViewController`](/documentation/ContactsUI/CNContactPickerViewController) allows the user to select one or more
contacts (or their properties) from the list of contacts displayed in the contact
view controller ([`CNContactViewController`](/documentation/ContactsUI/CNContactViewController)). The picker supports both
single selection and multiselection of the contacts. The app using contact picker
view does not need access to the user’s contacts and the user will not be prompted
for “grant permission” access. The app has access only to the user’s final selection.

There are predefined predicates in this class that let you control the user selection
of the contact. Changing the predicates only take effect before the view is presented.

## Topics

### Displaying Contacts Properties

[`displayedPropertyKeys`](/documentation/ContactsUI/CNContactPickerViewController/displayedPropertyKeys)

The <doc://com.apple.documentation/documentation/Contacts/CNContact> property keys
to display in the contact detail card.

### Responding to User Interactions

[`delegate`](/documentation/ContactsUI/CNContactPickerViewController/delegate)

The delegate to be notified when the user selects a contact or a property.

[`CNContactPickerDelegate`](/documentation/ContactsUI/CNContactPickerDelegate)

The methods that you implement to respond to contact-picker user events.

### Predicates For Selecting Contacts

[`predicateForEnablingContact`](/documentation/ContactsUI/CNContactPickerViewController/predicateForEnablingContact)

A predicate to determine the contact selectability in the list of contacts.

[`predicateForSelectionOfContact`](/documentation/ContactsUI/CNContactPickerViewController/predicateForSelectionOfContact)

A predicate to control the return of the selected contact.

[`predicateForSelectionOfProperty`](/documentation/ContactsUI/CNContactPickerViewController/predicateForSelectionOfProperty)

A predicate to control the properties of the selected contact.

## Relationships

### Conforms To

[`UITraitChangeObservable-67e94`](/documentation/UIKit/UITraitChangeObservable-67e94)

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

[`UIFocusEnvironment`](/documentation/UIKit/UIFocusEnvironment)

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

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

[`UIUserActivityRestoring`](/documentation/UIKit/UIUserActivityRestoring)

[`UIAppearanceContainer`](/documentation/UIKit/UIAppearanceContainer)

[`UIActivityItemsConfigurationProviding`](/documentation/UIKit/UIActivityItemsConfigurationProviding)

[`UIContentContainer`](/documentation/UIKit/UIContentContainer)

[`NSExtensionRequestHandling`](/documentation/Foundation/NSExtensionRequestHandling)

[`UIResponderStandardEditActions`](/documentation/UIKit/UIResponderStandardEditActions)

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

[`UIPasteConfigurationSupporting`](/documentation/UIKit/UIPasteConfigurationSupporting)

[`UIStateRestoring`](/documentation/UIKit/UIStateRestoring)

[`UITraitEnvironment`](/documentation/UIKit/UITraitEnvironment)

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

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

[`NSTouchBarProvider`](/documentation/AppKit/NSTouchBarProvider)

[`NSCoding`](/documentation/Foundation/NSCoding)

### Inherits From

[`UIViewController`](/documentation/UIKit/UIViewController)

---

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)