У меня есть приложение, в котором у меня есть представление коллекции категорий, и в каждой ячейке есть кнопка, изображение которой мне нужно изменить при выборе. Когда кнопка нажата, выбранный идентификатор добавляется, и когда я нажимаю кнопку галочки, я перехожу на другой экран, и он показывает мне все данные, относящиеся к этой категории. Когда я отменяю выбор категории и нажимаю кнопку, она все равно показывает мне данные этой категории, которые мне не нужны. Кто-нибудь может мне помочь с этой проблемой?
скриншот моего приложения:
Мой код, который я пробовал до сих пор:
метод cellforrow:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if selectedBtnIndex == 1{
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CategoryCell1", for: indexPath) as! CategoryCell1
let dict = categoryData[indexPath.row]
if let catName = dict.name, catName.count != 0 {
cell.categoryName.text = catName
}
if let catOffersCount = dict.count {
if catOffersCount == 1 {
cell.catOfferCount.text = "\(catOffersCount)"+" "+"Offer"
}else {
cell.catOfferCount.text = "\(catOffersCount)"+" "+"Offers"
}
}
cell.categoryImage.image = arrCategoryImages[indexPath.row]
cell.btn_click.tag = indexPath.row
cell.btn_click.addTarget(self, action: #selector(self.click_Category), for: .touchUpInside)
if selectedIds.contains(categoryData[indexPath.row].ID!) {
cell.btn_click.setImage(#imageLiteral(resourceName: "image_checked"), for: .normal)
cell.btn_click.isSelected = true
}else {
cell.btn_click.setImage(#imageLiteral(resourceName: "image_unchecked"), for: .normal)
cell.btn_click.isSelected = false
}
return cell
Кнопка добавления целевой функции:
@objc func click_Category(sender: UIButton!) {
if sender.isSelected == true {
selectedIds.append(categoryData[sender.tag].ID!)
sender.setImage(#imageLiteral(resourceName: "image_checked"), for: .normal)
sender.isSelected = false
} else {
selectedIds = selectedIds.filter{ $0 != sender.tag }
sender.setImage(#imageLiteral(resourceName: "image_unchecked"), for: .normal)
sender.isSelected = true
}
}