Use `@State` when the view owns and manages the data, such as a toggle or text input. Keep it `private`. ```swift struct SettingsView: View { @State private var isEnabled = false var body: some View { Toggle("Enabled", isOn: $isEnabled) } } ``` Use `@Binding` when data is owned by a parent but passed down to a child that needs two-way access. ```swift struct ParentView: View { @State private var isEnabled = false var body: some View { SettingsRow(isEnabled: $isEnabled) } } struct SettingsRow:...
Scanned 9/5/2026
Install to Claude Code
npx -y skills add HoangNguyen0403/agent-skills-standard --skill swift-swiftui --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Swift Swiftui?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hoangnguyen0403-swift-swiftui-agent-skills-standard)More formats (shields.io, HTML) on the badges page.
Use `@State` when the view owns and manages the data, such as a toggle or text input. Keep it `private`.
```swift
struct SettingsView: View {
@State private var isEnabled = false
var body: some View {
Toggle("Enabled", isOn: $isEnabled)
}
}
```
Use `@Binding` when data is owned by a parent but passed down to a child that needs two-way access.
```swift
struct ParentView: View {
@State private var isEnabled = false
var body: some View {
SettingsRow(isEnabled: $isEnabled)
}
}
struct SettingsRow: View {
@Binding var isEnabled: Bool
var body: some View {
Toggle("Enabled", isOn: $isEnabled)
}
}
```
Rule of thumb: `@State` = data owned by this view; `@Binding` = data passed down from a parent.
For other ownership cases, use `@StateObject` when the view creates the object, `@ObservedObject` when receiving an external instance, and `@EnvironmentObject` to inject shared data into the view’s hierarchy via `.environmentObject()`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!