<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.1.0 -",
    "tvOS: 13.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UIBarButtonItemAppearance",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(cs)UIBarButtonItemAppearance"
  },
  "title" : "UIBarButtonItemAppearance"
}
-->

# UIBarButtonItemAppearance

An object for customizing the appearance of bar button items.

```
@MainActor class UIBarButtonItemAppearance
```

## Overview

Use a [`UIBarButtonItemAppearance`](/documentation/UIKit/UIBarButtonItemAppearance) object to customize the appearance of a bar button item in each of its possible states. You can customize the appearance differently for different states. For example, you might apply different colors to the button’s title in the [`normal`](/documentation/UIKit/UIBarButtonItemAppearance/normal) and [`highlighted`](/documentation/UIKit/UIBarButtonItemAppearance/highlighted) states.

## Topics

### Creating a bar button item appearance object

[`-  initWithStyle:`](/documentation/UIKit/UIBarButtonItemAppearance/init(style:))

Creates an appearance with default values that are appropriate for the specified button style.

[`-  init`](/documentation/UIKit/UIBarButtonItemAppearance/init())

Creates an appearance object with default values that are appropriate for a plain button.

[`-  initWithCoder:`](/documentation/UIKit/UIBarButtonItemAppearance/init(coder:))

Creates an appearance object from data in an unarchiver.

### Copying a bar button item bar appearance object

[`-  copy`](/documentation/UIKit/UIBarButtonItemAppearance/copy())

Creates a copy of the appearance object.

### Resetting the appearance properties

[`-  configureWithDefaultForStyle:`](/documentation/UIKit/UIBarButtonItemAppearance/configureWithDefault(for:))

Configures the bar button item appearance object with appropriate values for the specified button style.

### Configuring attributes for different button states

[`normal`](/documentation/UIKit/UIBarButtonItemAppearance/normal)

The appearance data to apply to the button when it’s in the normal state.

[`disabled`](/documentation/UIKit/UIBarButtonItemAppearance/disabled)

The appearance data to apply to the button when it’s in the disabled state.

[`highlighted`](/documentation/UIKit/UIBarButtonItemAppearance/highlighted)

The appearance data to apply to the button when it’s in the highlighted state.

[`focused`](/documentation/UIKit/UIBarButtonItemAppearance/focused)

The appearance data to apply to the button when it’s focused.

## Relationships

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

### Conforms To

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

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

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

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

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

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

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

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

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

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

---

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)