В этих ячейках также есть кнопка «Звездочка», которая на данный момент печатает данные конкретной ячейки.
Вторая вкладка — Вкладка «Сохранено» (
Код: Выделить всё
SavedViewController
Вы можете увидеть изображение ниже, чтобы получить идея для приложения.

Кнопка со звездочкой имеет функцию в моем СтраныTableViewCell. Я использую saveButtonDelegate, чтобы сообщить SavedViewController о том, что элемент будет сохранен. Код в CountryTableViewCell для кнопки звездочки приведен ниже.
Код: Выделить всё
@objc func buttonTapped() {
//If Button is selected fill the image. Else unfill it.
if !isSaveButtonSelected {
saveButton.setImage(UIImage(systemName: "star.fill"), for: .normal)
isSaveButtonSelected = true
saveButtonDelegate?.saveButtonClicked(with: countryData) //Checking if save button is clicked
}
}
Код: Выделить всё
countryData
Код: Выделить всё
struct CountryData: Codable {
let name : String
}
Код: Выделить всё
extension SavedViewController: SaveButtonProtocol {
func saveButtonClicked(with data: CountryData) {
countryDataArray.append(data)
print("saveButtonClicked")
print("countryData in savevc is \(countryDataArray)")
DispatchQueue.main.async {
self.countriesTableView.reloadData()
}
}
}
Проблема в том, что при каждом нажатии кнопки со звездочкой она должна добавлять данные из текущей нажатой ячейки. в CountryDataArray в SavedViewController, но массив не заполняется должным образом.
Предположим, я нажал звездочку первой ячейки, мой print("countryData в savevc это Оператор \(countryDataArray)") печатает: ["Ватикан"], затем я нажимаю звездочку второй ячейки, печатается только ["Эфиопия"] хотя он должен печатать ["Ватикан", "Эфиопия"]
Почему возникает эта проблема? Я думаю, что я делегирую SavedViewController из класса ячейки, чтобы он вел себя по-разному для каждой другой ячейки. Если это проблема, что мне делать, чтобы ее решить?
Подробнее здесь: https://stackoverflow.com/questions/701 ... ew-showing