<!--
{
  "availability" : [
    "iOS: 2.0.0 - 9.0.0",
    "iPadOS: 2.0.0 - 9.0.0",
    "macCatalyst: 13.1.0 - 13.1.0"
  ],
  "documentType" : "symbol",
  "framework" : "AddressBookUI",
  "identifier" : "/documentation/AddressBookUI/ABPeoplePickerNavigationController",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Address Book UI"
    ],
    "preciseIdentifier" : "c:objc(cs)ABPeoplePickerNavigationController"
  },
  "title" : "ABPeoplePickerNavigationController"
}
-->

# ABPeoplePickerNavigationController

The `ABPeoplePickerNavigationController` class (whose instances are known as **people-picker navigation controllers**) implements a view controller that manages a set of views that allow the user to select a contact or one of its contact-information items from an address book.

```
class ABPeoplePickerNavigationController
```

## Overview

In iOS 8 and later bringing up a people-picker navigtion controller does not require the app to have access to a user’s contacts, and the user will not be prompted to grant access. If the app does not itself have access to the user’s contacts, a temporary copy of the contact selected by the user will be returned to the app.

See PeoplePicker: Picking a Person or Property for a sample project illustrating the use of a people-picker navigation controller.

### Subclassing

The `ABPeoplePickerNavigationController` class does not support subclassing.

## Topics

### Responding to View Controller Interactions

[`peoplePickerDelegate`](/documentation/AddressBookUI/ABPeoplePickerNavigationController/peoplePickerDelegate)

The people-picker navigation controller delegate.

[`ABPeoplePickerNavigationControllerDelegate`](/documentation/AddressBookUI/ABPeoplePickerNavigationControllerDelegate)

The `ABPeoplePickerNavigationControllerDelegate` protocol describes the interface [`ABPeoplePickerNavigationController`](/documentation/AddressBookUI/ABPeoplePickerNavigationController) delegates must adopt to respond to people-picker user events.

### Displaying Person Properties

[`displayedProperties`](/documentation/AddressBookUI/ABPeoplePickerNavigationController/displayedProperties)

The properties (such as name or telephone number) the picker displays when it shows a person.

### Configuring People Pickers

[`addressBook`](/documentation/AddressBookUI/ABPeoplePickerNavigationController/addressBook)

Optional; the address book from which to obtain the list of contacts.

### Customizing Display and Selection

[`predicateForEnablingPerson`](/documentation/AddressBookUI/ABPeoplePickerNavigationController/predicateForEnablingPerson)

Optionally determines if a person can be selected.

[`predicateForSelectionOfPerson`](/documentation/AddressBookUI/ABPeoplePickerNavigationController/predicateForSelectionOfPerson)

Optionally determines if a selected person should be returned to the app or displayed.

[`predicateForSelectionOfProperty`](/documentation/AddressBookUI/ABPeoplePickerNavigationController/predicateForSelectionOfProperty)

Optionally determines if a selected property should be returned to the app or if the default action for the property should be performed

### Constants

[Address Book Properties](/documentation/AddressBookUI/address-book-properties)

These constants can be used in predicates for selecting people or properties. A labeled value is an object with a “label” property and a “value” property.

## Relationships

### Conforms To

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

### Inherits From

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

---

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)