struct ItemView: View { @Binding var department: Department var storeIndex: Int var itemIndex: Int var body: some View { VStack { Text("price") TextField( "", value: $department.stores[storeIndex].items[itemIndex].price, format: .number ) .keyboardType(.decimalPad) } } } struct ContentView: View { @State private var path: NavigationPath = .init() @State private var department: Department = .init() var body: some View { NavigationStack(path: $path) { Button("Visit Store") { let newStore: Store = .init() department.stores.append(newStore) path.append(newStore) } .navigationDestination(for: Store.self) { store in let storeIndex = department.stores.firstIndex { $0.id == store.id }! Button("See Item") { let newItem: Item = .init() department.stores[storeIndex].items.append(newItem) path.append(newItem) } .navigationDestination(for: Item.self) { item in let itemIndex = department.stores[storeIndex].items.firstIndex { $0.id == item.id }! ItemView(department: $department, storeIndex: storeIndex, itemIndex: itemIndex) } } } } }
1