---
title: UITabBarDelegate
framework: uikit
role: symbol
role_heading: Protocol
path: uikit/uitabbardelegate
---

# UITabBarDelegate

The UITabBarDelegate protocol defines optional methods for a delegate of a UITabBar object. The 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.

## Declaration

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

## Overview

Overview Send beginCustomizingItems(_:) to a 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:)](uikit/uitabbardelegate/tabbar(_:willbegincustomizing:).md)
- [tabBar(_:didBeginCustomizing:)](uikit/uitabbardelegate/tabbar(_:didbegincustomizing:).md)
- [tabBar(_:willEndCustomizing:changed:)](uikit/uitabbardelegate/tabbar(_:willendcustomizing:changed:).md)
- [tabBar(_:didEndCustomizing:changed:)](uikit/uitabbardelegate/tabbar(_:didendcustomizing:changed:).md)
- [tabBar(_:didSelect:)](uikit/uitabbardelegate/tabbar(_:didselect:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

### Conforming Types

- [UITabBarController](uikit/uitabbarcontroller.md)

## See Also

### Customizing the tab bar behavior

- [delegate](uikit/uitabbar/delegate.md)
