【问题标题】:After deleting/removing an array it goes back when refresh删除/删除数组后,刷新时返回
【发布时间】:2021-01-15 17:21:34
【问题描述】:

我的 tableviewCell 中有两个按钮,确认并忽略这两个按钮应该在单击它成功删除单元格时删除单元格,但是当我刷新它时它会返回。单击忽略或确认时如何永久删除数组中的数据。

首先,该数组仅在 activityArray 中,但我需要对其进行过滤以获取待处理的活动。

        if activities.count > 0 {
            let filtered = activities.filter { $0.activityTypeAction == .FriendRequest || $0.activityTypeAction == .EventRSVPInvite }
            if self.kCurrentPage == 0 {
                self.activityArray.removeAll()
                self.pendingActivityArray.removeAll()
            }
            self.activityArray.append(contentsOf: activities)
            self.pendingActivityArray.append(contentsOf: filtered)
        }

这就是我删除单元格的方式。

                cell.onClinkedIgnoreCallback = {
                    self.pendingActivityArray.remove(at: indexPath.row)
                    self.NotificationTableView.deleteRows(at: [indexPath], with: .left)
                    self.NotificationTableView.reloadData()
                }
                cell.onClickedConfirmCallback = {
                    self.pendingActivityArray.remove(at: indexPath.row)
                    self.NotificationTableView.deleteRows(at: [indexPath], with: .left)
                    self.NotificationTableView.reloadData()
                }

【问题讨论】:

  • 如何刷新数据?通过从一个视图导航到另一个视图或重新加载表格视图?
  • @KrunalNagvadia 我正在重新加载表格视图。我有这个if (indexPath.row == activityArray.count - 1) { loadMoreActivity() },在我的 loadMoreActivity 中有以下if activities.count > 0 {....},它在上面的代码中提供。
  • 不相关但从不在deleteRows 之后立即调用reloadData。删除行确实会更新表视图。还有isEmpty 用于集合类型和字符串,它比.count == 0 更有效

标签: ios arrays swift uitableview


【解决方案1】:

你不需要调用该函数来刷新,因为它会再次填充相关数组中的数据,所以如果你想刷新它,只需调用 tableview.reloadData()

【讨论】:

  • 我不会调用 loadMoreActivity() 吗?
  • 只有一次将数据分配给数组
  • 我不明白。我有 ActivityArray,然后我的 pendingArray 依赖于它,所以每次我重新加载/刷新视图时,我的 pendingArray 复制了我的 ActivityArray
  • 根据您的需要在 loadMoreActivity() 中的 pendingarray 上进行检查,这样如果您不需要它就不会更新
  • 所以例如我有这个let filtered = activities.filter { $0.activityTypeAction == .FriendRequest || $0.activityTypeAction == .EventRSVPInvite }我可以做这样的事情filtered.removeAll(where: {$0.activityTypeAction == .FriendAccept} )然后我会附加它self.pendingActivityArray.append(contentsOf: filtered)
猜你喜欢
  • 1970-01-01
  • 2017-05-22
  • 1970-01-01
  • 2021-09-21
  • 2012-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多