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

# UITabBarDelegate

The [`UITabBarDelegate`](/documentation/UIKit/UITabBarDelegate) protocol defines optional methods for a delegate of a [`UITabBar`](/documentation/UIKit/UITabBar) object. The [`UITabBar`](/documentation/UIKit/UITabBar) class provides the ability for the user to reorder, remove, and add items to the tab bar; this process is referred to as customizing the tab bar. The tab bar delegate receives messages when customizing occurs.

```
@MainActor protocol UITabBarDelegate : NSObjectProtocol
```

## Overview

Send [`beginCustomizingItems(_:)`](/documentation/UIKit/UITabBar/beginCustomizingItems(_:)) to a [`UITabBar`](/documentation/UIKit/UITabBar) object to begin customizing. Implement the methods in Customizing tab bars to intervene while a user is customizing a tab bar. The customizing modal view is dismissed when the user taps the Done button on the modal view.

## Topics

### Customizing tab bars

[`tabBar(_:willBeginCustomizing:)`](/documentation/UIKit/UITabBarDelegate/tabBar(_:willBeginCustomizing:))

Sent to the delegate before the customizing modal view is displayed.

[`tabBar(_:didBeginCustomizing:)`](/documentation/UIKit/UITabBarDelegate/tabBar(_:didBeginCustomizing:))

Sent to the delegate after the customizing modal view is displayed.

[`tabBar(_:willEndCustomizing:changed:)`](/documentation/UIKit/UITabBarDelegate/tabBar(_:willEndCustomizing:changed:))

Sent to the delegate before the customizing modal view is dismissed.

[`tabBar(_:didEndCustomizing:changed:)`](/documentation/UIKit/UITabBarDelegate/tabBar(_:didEndCustomizing:changed:))

Sent to the delegate after the customizing modal view is dismissed.

[`tabBar(_:didSelect:)`](/documentation/UIKit/UITabBarDelegate/tabBar(_:didSelect:))

Sent to the delegate when the user selects a tab bar item.



---

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)