<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UISearchDisplayDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(pl)UISearchDisplayDelegate"
  },
  "title" : "UISearchDisplayDelegate"
}
-->

# UISearchDisplayDelegate

The interface for the delegate of a search display controller.

```
@MainActor protocol UISearchDisplayDelegate : NSObjectProtocol
```

## Overview

This protocol defines delegate methods for [`UISearchDisplayController`](/documentation/UIKit/UISearchDisplayController) objects.

## Topics

### Responding to search state change

[`searchDisplayControllerWillBeginSearch(_:)`](/documentation/UIKit/UISearchDisplayDelegate/searchDisplayControllerWillBeginSearch(_:))

Tells the delegate that the controller is about to begin searching.

[`searchDisplayControllerDidBeginSearch(_:)`](/documentation/UIKit/UISearchDisplayDelegate/searchDisplayControllerDidBeginSearch(_:))

Tells the delegate that the controller has started searching.

[`searchDisplayControllerWillEndSearch(_:)`](/documentation/UIKit/UISearchDisplayDelegate/searchDisplayControllerWillEndSearch(_:))

Tells the delegate that the controller is about to end searching.

[`searchDisplayControllerDidEndSearch(_:)`](/documentation/UIKit/UISearchDisplayDelegate/searchDisplayControllerDidEndSearch(_:))

Tells the delegate that the controller has finished searching.

### Loading and unloading the table view

[`searchDisplayController(_:didLoadSearchResultsTableView:)`](/documentation/UIKit/UISearchDisplayDelegate/searchDisplayController(_:didLoadSearchResultsTableView:))

Tells the delegate that the controller has loaded its table view.

[`searchDisplayController(_:willUnloadSearchResultsTableView:)`](/documentation/UIKit/UISearchDisplayDelegate/searchDisplayController(_:willUnloadSearchResultsTableView:))

Tells the delegate that the controller is about to unload its table view.

### Showing and hiding the table view

[`searchDisplayController(_:willShowSearchResultsTableView:)`](/documentation/UIKit/UISearchDisplayDelegate/searchDisplayController(_:willShowSearchResultsTableView:))

Tells the delegate that the controller is about to display its table view.

[`searchDisplayController(_:didShowSearchResultsTableView:)`](/documentation/UIKit/UISearchDisplayDelegate/searchDisplayController(_:didShowSearchResultsTableView:))

Tells the delegate that the controller just displayed its table view.

[`searchDisplayController(_:willHideSearchResultsTableView:)`](/documentation/UIKit/UISearchDisplayDelegate/searchDisplayController(_:willHideSearchResultsTableView:))

Tells the delegate that the controller is about to hide its table view.

[`searchDisplayController(_:didHideSearchResultsTableView:)`](/documentation/UIKit/UISearchDisplayDelegate/searchDisplayController(_:didHideSearchResultsTableView:))

Tells the delegate that the controller just hid its table view.

### Responding to changes in search criteria

[`searchDisplayController(_:shouldReloadTableForSearch:)`](/documentation/UIKit/UISearchDisplayDelegate/searchDisplayController(_:shouldReloadTableForSearch:))

Asks the delegate if the table view should be reloaded for a given search string.

[`searchDisplayController(_:shouldReloadTableForSearchScope:)`](/documentation/UIKit/UISearchDisplayDelegate/searchDisplayController(_:shouldReloadTableForSearchScope:))

Asks the delegate if the table view should be reloaded for a given scope.



---

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)