У меня есть ResidentsView()
, который содержит список ResidentCell()
, и каждая ячейка имеет свою собственную кнопку. Эта кнопка добавляет полосу к своему имени. В настоящее время это увеличивает только резидента, потому что я дал его в качестве резидента по умолчанию для тестирования. Однако я хочу, чтобы полосы человека увеличивались при нажатии кнопки под его именем. Как мне узнать, какая кнопка нажата из четырех ячеек, чтобы я знал, чьи полосы мне нужно увеличить?
struct ResidentCell: View {
@State var showStripeView: Bool = false
var resident: Resident
var body: some View {
VStack {
HStack{
VStack(alignment: .leading) {
Text(resident.name)
.font(.title)
Text(String(resident.year))
.font(.caption)
}.padding(.leading)
Spacer()
Text("Streepjes: \(numberOfStripes(stripes: resident.stripes))")
.font(.subheadline)
.fontWeight(.bold)
.padding(.trailing)
.foregroundColor(resident.stripes > 4 ? .red : .black)
}
Divider()
.frame(width: 200)
Button(action: {
self.showStripeView.toggle()
}) {
Text("Add stripe")
.padding()
.border(Color.green, width: 5)
.foregroundColor(.black)
.cornerRadius(5)
}
.padding(.top, 5)
.buttonStyle(BorderlessButtonStyle())
.sheet(isPresented: $showStripeView) {
AddStripeView(currentUser: Resident.testResidents[0])
}
}
}
func numberOfStripes(stripes: Int) -> String {
let count = stripes
var stripeString = ""
for _ in (1...count) {
stripeString.append("I")
}
return stripeString
}
}