// ContentView.swift
import SwiftUI
import SwiftData
@Model
class TrackedItem {
@Attribute var name: String
init(name: String) {
self.name = name
}
}
struct ContentView: View {
@Query private var items: [TrackedItem]
@StateObject var viewModel = ViewModel(items: [])
var body: some View {
NavigationStack {
YourAppView()
}
.environmentObject(viewModel)
.onAppear {
viewModel.reloadData(items: items)
}
.onChange(of: items) {
viewModel.reloadData(items: items)
}
}
}
// ViewModel.swift
import Foundation
class ViewModel: ObservableObject {
@Published var stuff: String = "Stuff"
var items: [TrackedItem]
init(items: [TrackedItem]) {
self.items = items
fetchData()
}
func reloadData(items: [TrackedItem]) {
self.items = items
fetchData()
}
private func fetchData() {
stuff = "New stuff"
}
}
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags: