<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 10.15.0 -",
    "tvOS: 13.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 6.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SwiftUI",
  "identifier" : "/documentation/SwiftUI/State/projectedValue",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:7SwiftUI5StateV14projectedValueAA7BindingVyxGvp"
  },
  "title" : "projectedValue"
}
-->

# projectedValue

A binding to the state value.

```
var projectedValue: Binding<Value> { get }
```

## Discussion

Use the projected value to get a [`Binding`](/documentation/SwiftUI/Binding) to the stored value. The
binding provides a two-way connection to the stored value. To access
the `projectedValue`, prefix the property variable with a dollar
sign (`$`).

In the following example, `PlayerView` projects a binding of the state
property `isPlaying` to the `PlayButton` view using `$isPlaying`. That
enables the play button to both read and write the value:

```
struct PlayerView: View {
    var episode: Episode
    @State private var isPlaying: Bool = false

    var body: some View {
        VStack {
            Text(episode.title)
                .foregroundStyle(isPlaying ? .primary : .secondary)
            PlayButton(isPlaying: $isPlaying)
        }
    }
}
```

---

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)