У меня есть кнопка избранного в представлении коллекции. Кнопка показывает одно изображение, когда оно выбрано, и другое, когда нажимается снова. Я хочу сохранить состояние изображения, даже если оно переходит к другому контроллеру представления и возвращает обратно.
приведенный ниже код написан внутри cellforitem представления коллекции
cell.favBtn.tag = indexPath.row
let value = UserDefaults.standard.bool(forKey: "isSaved")
print("value is",value)
cell.favBtn.isSelected = value
cell.favBtn.isSelected = false
cell.favBtn.addTarget(self, action: #selector(favBtnAction), for: .touchUpInside)
Код функции favBtnAction выглядит следующим образом:
@IBAction func favBtnAction(_ sender: UIButton) {
if objcell.favBtn.isSelected {
// set selected
sender.setImage(image1, for: UIControl.State.normal)
objcell.favBtn.isSelected = false
UserDefaults.standard.set(true, forKey: "isSaved")
UserDefaults.standard.synchronize()
} else {
// set deselected
sender.setImage(image2, for: UIControl.State.normal)
objcell.favBtn.isSelected = true
UserDefaults.standard.set(false, forKey: "isSaved")
UserDefaults.standard.synchronize()
}
}