---
title: "unregisterForTraitChanges(_:)"
framework: uikit
role: symbol
role_heading: Instance Method
path: "uikit/uitraitchangeobservable-67e94/unregisterfortraitchanges(_:)"
---

# unregisterForTraitChanges(_:)

Tells the system to stop observing previously registered traits.

## Declaration

```swift
@MainActor func unregisterForTraitChanges(_ registration: any UITraitChangeRegistration)
```

## Parameters

- `registration`: A token that identifies the registration, obtained from one of the trait registration method calls.

## Mentioned in

Adapting your app when traits change

## Discussion

Discussion Use this method if you want the system to stop observing trait changes for a previous registration. UIKit doesn’t require you to unregister for trait changes at the end of the view lifecycle. Unregister only if you need to dynamically change which traits you observe.

## See Also

### Observing trait changes

- [registerForTraitChanges(_:action:)](uikit/uitraitchangeobservable-67e94/registerfortraitchanges(_:action:).md)
- [registerForTraitChanges(_:handler:)](uikit/uitraitchangeobservable-67e94/registerfortraitchanges(_:handler:).md)
- [registerForTraitChanges(_:target:action:)](uikit/uitraitchangeobservable-67e94/registerfortraitchanges(_:target:action:).md)
- [UITraitChangeObservable.TraitChangeHandler](uikit/uitraitchangeobservable-67e94/traitchangehandler.md)
- [UITraitChangeRegistration](uikit/uitraitchangeregistration.md)
