Updating @State Variable Depending ForEach Row Selection

import SwiftUI

struct ContentView: View {
	@State var numbers = [2021, 9, 30]
	
    var body: some View {
		//let firstLocalYear = 2021
		let firstLocalMonth = 9
		let firstLocalDay = 24
		let firstLastDay = 30
		
		NavigationView {
			List {
				Section(header: Text("Current month")) {
					ForEach(firstLocalDay ..< firstLastDay) { i in
						HStack {
							Text("\(firstLocalMonth)-\(i + 1)")
							Spacer()
							NavigationLink(
								destination: TimeView(numbers: $numbers),
								label: {
									Text("")
								})
						}
					}
				}
			}
		}
    }
}

struct TimeView: View {
	@Binding var numbers: [Int]
	
	var body: some View {
		HStack {
			Text(String(numbers[0]))
			Text(String(numbers[1]))
			Text(String(numbers[2]))
		}
	}
}

I have the lines of code above to list some rows of text. For now, numbers is a state variable that is pre-determined. This state variable is passed on to TimeView. Actually, I want to change this array depending on which row the user selects like

numbers = [firstLocalYear, firstLocalMonth, i]

where i comes from the ForEach thing. How can I change this array? Muchos thankos.

It seems that I have achieved my objective with the following. But I'm not sure if it's an efficient approach.

import SwiftUI

struct ContentView: View {
	@State var numbers = [2021, 9, 30]
	
    var body: some View {
		let firstLocalYear = 2021
		let firstLocalMonth = 9
		let firstLocalDay = 24
		let firstLastDay = 30
		
		NavigationView {
			List {
				Section(header: Text("Current month")) {
					ForEach(firstLocalDay ..< firstLastDay) { i in
						HStack {
							Text("\(firstLocalMonth)-\(i + 1)")
							Spacer()
							Button("Select") {
								self.numbers = [firstLocalYear, firstLocalMonth, i + 1]
							}
							NavigationLink(
								destination: TimeView(numbers: $numbers),
								label: {
									Text("")
								})
						}
					}
				}
			}
		}
    }
}

struct TimeView: View {
	@Binding var numbers: [Int]
	
	var body: some View {
		HStack {
			Text(String(numbers[0]))
			Text(String(numbers[1]))
			Text(String(numbers[2]))
		}
	}
}
Updating @State Variable Depending ForEach Row Selection
 
 
Q