滚动TableView后显示错误数据

时间:2018-12-28 13:52:41

标签: swift uicollectionview uicollectionviewcell fmdb

当我用类关键字从class MatchRegister(models.Model): match_id = models.ForeignKey(Match) user_id = models.ForeignKey(Users) chosen = models.BooleanField(default=False) 单击单元格时,我试图更新TableView单元格。 例如,当我单击“全部”时,它应该执行所有数据。 当我单击“ a”时,它应该与“ a”一起上课。 直到向下滚动TableView为止,一切看起来都很完美。 所有数据显示不是我的意图,它应该只显示指定的数据,甚至向上/向下滚动TableView。 与CollectionView问题有关吗?

点击dequeueReusableCell单元格时,我使用FMDB查询数据。 我附上gif

enter image description here

并希望更好地了解我的问题。

有人可以帮我这个忙吗?谢谢。

在此处添加cellForRow函数。

CollectionView

在此处添加didSelectItemAt函数。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: cellID, for: indexPath) as! ListTableViewCell

    if navigationItem.searchController?.isActive == true{
        cell.itemImage.image = searchArray[indexPath.row].thumbnailImage()
        cell.nameLBL.text = "name:\(searchArray[indexPath.row].name ?? "")"
        cell.quantityLBL.text = "Qty:\(searchArray[indexPath.row].quantity ?? 0)pcs"
        cell.amountLBL.text = "amount:\(searchArray[indexPath.row].amount ?? 0)"
        cell.dateLBL.text = "date:\(searchArray[indexPath.row].date ?? "")"
        cell.storeLBL.text = "store:\(searchArray[indexPath.row].store ?? "")"
        cell.classLBL.text = "class:\(searchArray[indexPath.row].itemClass ?? "")"
        if let reminder = searchArray[indexPath.row].reminder {
            let reminderText = ""
            cell.reminderLBL.text = "\(reminder)" + reminderText
            reminderStatus = true
        }else{
            cell.reminderLBL.text = "reminder:NO"
            if self.array[indexPath.row].reminder == nil{
                cell.reminderLBL.text = "reminder:NO"
            }
            reminderStatus = false
        }

    }else{

        cell.itemImage.image = array[indexPath.row].thumbnailImage()
        cell.nameLBL.text = "name:\(array[indexPath.row].name ?? "")"
        cell.quantityLBL.text = "Qty:\(array[indexPath.row].quantity ?? 0)pcs"
        cell.amountLBL.text = "amount:\(array[indexPath.row].amount ?? 0)"
        cell.dateLBL.text = "date:\(array[indexPath.row].date ?? "")"
        cell.storeLBL.text = "store:\(array[indexPath.row].store ?? "")"
        cell.classLBL.text = "class:\(array[indexPath.row].itemClass ?? "")"
        if let reminder = array[indexPath.row].reminder {
            let reminderText = ""
            cell.reminderLBL.text = "\(reminder)" + reminderText
            reminderStatus = true
        }else{
            cell.reminderLBL.text = "reminder:NO"
            if self.array[indexPath.row].reminder == nil{
                cell.reminderLBL.text = "reminder:NO"
            }
            reminderStatus = false
        }
        print(array.count)
    }
    return cell
}

可能是因素的功能。

    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    switch indexPath.row {
    case 0:
        reloadTableViewAndDatabase()
    case 1:
       reloadTableViewAndDatabase(itemClass: searchStringOfDaily)
    case 2:
       reloadTableViewAndDatabase(itemClass: searchStringOfCare)
    case 3:
        reloadTableViewAndDatabase(itemClass: searchStringOfCosmetic)
    default:
        reloadTableViewAndDatabase()
    }
}

0 个答案:

没有答案