---
title: UIBarButtonItem
framework: uikit
role: symbol
role_heading: Class
path: uikit/uibarbuttonitem
---

# UIBarButtonItem

A specialized button for placement on a toolbar, navigation bar, or shortcuts bar.

## Declaration

```swift
@MainActor class UIBarButtonItem
```

## Mentioned in

Getting the user’s attention with alerts and action sheets

## Overview

Overview You typically use Interface Builder to create and configure bar button items. However, you can customize the appearance of buttons by sending the setter messages to UIBarButtonItemAppearance to customize all buttons, or to a specific UIBarButtonItem instance. You can use customized buttons in standard places in a UINavigationItem object or a UIToolbar instance. In general, specify a value for the normal state so that other states without a custom value set can use it. Similarly, when a property depends on the bar metrics (for instance, on the iPhone in landscape orientation, bars have a different height from the standard), specify a value of UIBarMetrics.default.

## Topics

### Creating items

- [init(title:image:primaryAction:menu:)](uikit/uibarbuttonitem/init(title:image:primaryaction:menu:).md)
- [init(title:image:target:action:menu:)](uikit/uibarbuttonitem/init(title:image:target:action:menu:).md)
- [init()](uikit/uibarbuttonitem/init().md)
- [init(coder:)](uikit/uibarbuttonitem/init(coder:).md)

### Creating items of a specific style

- [init(title:style:target:action:)](uikit/uibarbuttonitem/init(title:style:target:action:).md)
- [init(image:style:target:action:)](uikit/uibarbuttonitem/init(image:style:target:action:).md)
- [init(image:landscapeImagePhone:style:target:action:)](uikit/uibarbuttonitem/init(image:landscapeimagephone:style:target:action:).md)

### Creating system items

- [init(systemItem:primaryAction:menu:)](uikit/uibarbuttonitem/init(systemitem:primaryaction:menu:).md)
- [init(barButtonSystemItem:target:action:)](uikit/uibarbuttonitem/init(barbuttonsystemitem:target:action:).md)
- [UIBarButtonItem.SystemItem](uikit/uibarbuttonitem/systemitem.md)

### Creating custom items

- [init(customView:)](uikit/uibarbuttonitem/init(customview:).md)

### Creating space items

- [fixedSpace(_:)](uikit/uibarbuttonitem/fixedspace(_:).md)
- [fixedSpace()](uikit/uibarbuttonitem/fixedspace().md)
- [flexibleSpace()](uikit/uibarbuttonitem/flexiblespace().md)

### Creating groups

- [creatingOptionalGroup(customizationIdentifier:isInDefaultCustomization:)](uikit/uibarbuttonitem/creatingoptionalgroup(customizationidentifier:isindefaultcustomization:).md)
- [creatingFixedGroup()](uikit/uibarbuttonitem/creatingfixedgroup().md)
- [creatingMovableGroup(customizationIdentifier:)](uikit/uibarbuttonitem/creatingmovablegroup(customizationidentifier:).md)

### Managing the custom view

- [customView](uikit/uibarbuttonitem/customview.md)

### Managing the action

- [primaryAction](uikit/uibarbuttonitem/primaryaction.md)
- [changesSelectionAsPrimaryAction](uikit/uibarbuttonitem/changesselectionasprimaryaction.md)
- [action](uikit/uibarbuttonitem/action.md)
- [target](uikit/uibarbuttonitem/target.md)

### Managing the context menu

- [menu](uikit/uibarbuttonitem/menu.md)
- [preferredMenuElementOrder](uikit/uibarbuttonitem/preferredmenuelementorder.md)

### Customizing item appearance

- [style](uikit/uibarbuttonitem/style-swift.property.md)
- [UIBarButtonItem.Style](uikit/uibarbuttonitem/style-swift.enum.md)
- [tintColor](uikit/uibarbuttonitem/tintcolor.md)
- [isHidden](uikit/uibarbuttonitem/ishidden.md)
- [isSelected](uikit/uibarbuttonitem/isselected.md)
- [width](uikit/uibarbuttonitem/width.md)
- [possibleTitles](uikit/uibarbuttonitem/possibletitles.md)

### Customizing the Back button

- [backButtonBackgroundImage(for:barMetrics:)](uikit/uibarbuttonitem/backbuttonbackgroundimage(for:barmetrics:).md)
- [setBackButtonBackgroundImage(_:for:barMetrics:)](uikit/uibarbuttonitem/setbackbuttonbackgroundimage(_:for:barmetrics:).md)
- [backButtonTitlePositionAdjustment(for:)](uikit/uibarbuttonitem/backbuttontitlepositionadjustment(for:).md)
- [setBackButtonTitlePositionAdjustment(_:for:)](uikit/uibarbuttonitem/setbackbuttontitlepositionadjustment(_:for:).md)
- [backButtonBackgroundVerticalPositionAdjustment(for:)](uikit/uibarbuttonitem/backbuttonbackgroundverticalpositionadjustment(for:).md)
- [setBackButtonBackgroundVerticalPositionAdjustment(_:for:)](uikit/uibarbuttonitem/setbackbuttonbackgroundverticalpositionadjustment(_:for:).md)

### Customizing the background

- [backgroundVerticalPositionAdjustment(for:)](uikit/uibarbuttonitem/backgroundverticalpositionadjustment(for:).md)
- [setBackgroundVerticalPositionAdjustment(_:for:)](uikit/uibarbuttonitem/setbackgroundverticalpositionadjustment(_:for:).md)
- [backgroundImage(for:barMetrics:)](uikit/uibarbuttonitem/backgroundimage(for:barmetrics:).md)
- [setBackgroundImage(_:for:barMetrics:)](uikit/uibarbuttonitem/setbackgroundimage(_:for:barmetrics:).md)
- [backgroundImage(for:style:barMetrics:)](uikit/uibarbuttonitem/backgroundimage(for:style:barmetrics:).md)
- [setBackgroundImage(_:for:style:barMetrics:)](uikit/uibarbuttonitem/setbackgroundimage(_:for:style:barmetrics:).md)

### Customizing the title placement

- [titlePositionAdjustment(for:)](uikit/uibarbuttonitem/titlepositionadjustment(for:).md)
- [setTitlePositionAdjustment(_:for:)](uikit/uibarbuttonitem/settitlepositionadjustment(_:for:).md)

### Configuring symbol effects

- [isSymbolAnimationEnabled](uikit/uibarbuttonitem/issymbolanimationenabled.md)
- [addSymbolEffect(_:options:animated:)](uikit/uibarbuttonitem/addsymboleffect(_:options:animated:)-3iew0.md)
- [addSymbolEffect(_:options:animated:)](uikit/uibarbuttonitem/addsymboleffect(_:options:animated:)-6jx3e.md)
- [addSymbolEffect(_:options:animated:)](uikit/uibarbuttonitem/addsymboleffect(_:options:animated:)-9dytr.md)
- [setSymbolImage(_:contentTransition:options:)](uikit/uibarbuttonitem/setsymbolimage(_:contenttransition:options:).md)
- [removeSymbolEffect(ofType:options:animated:)](uikit/uibarbuttonitem/removesymboleffect(oftype:options:animated:)-214pl.md)
- [removeSymbolEffect(ofType:options:animated:)](uikit/uibarbuttonitem/removesymboleffect(oftype:options:animated:)-7m567.md)
- [removeSymbolEffect(ofType:options:animated:)](uikit/uibarbuttonitem/removesymboleffect(oftype:options:animated:)-8zc4d.md)
- [removeAllSymbolEffects(options:animated:)](uikit/uibarbuttonitem/removeallsymboleffects(options:animated:).md)

### Getting the group

- [buttonGroup](uikit/uibarbuttonitem/buttongroup.md)

### Representing the item in a menu

- [menuRepresentation](uikit/uibarbuttonitem/menurepresentation.md)

### Adding a badge

- [badge](uikit/uibarbuttonitem/badge-4sz3f.md)
- [UIBarButtonItem.Badge](uikit/uibarbuttonitem/badge-swift.struct.md)

### Customizing placement in a toolbar

- [hidesSharedBackground](uikit/uibarbuttonitem/hidessharedbackground.md)
- [sharesBackground](uikit/uibarbuttonitem/sharesbackground.md)

### Instance Properties

- [identifier](uikit/uibarbuttonitem/identifier.md)
- [isPaddingRemoved](uikit/uibarbuttonitem/ispaddingremoved.md)
- [visibilityPriority](uikit/uibarbuttonitem/visibilitypriority.md)

## Relationships

### Inherits From

- [UIBarItem](uikit/uibaritem.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [Copyable](swift/copyable.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [UIAccessibilityIdentification](uikit/uiaccessibilityidentification.md)
- [UIAppearance](uikit/uiappearance.md)
- [UIPopoverPresentationControllerSourceItem](uikit/uipopoverpresentationcontrollersourceitem.md)
- [UISpringLoadedInteractionSupporting](uikit/uispringloadedinteractionsupporting.md)

## See Also

### Bars

- [UIBarItem](uikit/uibaritem.md)
- [UIBarButtonItemGroup](uikit/uibarbuttonitemgroup.md)
- [UINavigationBar](uikit/uinavigationbar.md)
- [UISearchBar](uikit/uisearchbar.md)
- [UIToolbar](uikit/uitoolbar.md)
- [UITabBar](uikit/uitabbar.md)
- [UITabBarItem](uikit/uitabbaritem.md)
- [UIBarPositioning](uikit/uibarpositioning.md)
- [UIBarPositioningDelegate](uikit/uibarpositioningdelegate.md)
