【问题标题】:Swift - How to save data to Firebase from multiply selected cells in TableView?Swift - 如何从 TableView 中的多个选定单元格中将数据保存到 Firebase?
【发布时间】:2021-02-19 15:02:06
【问题描述】:

我需要将 tableView 中选定单元格的所有数据保存到 Firebase 数据库。 在单元格中,我只有标签,没有按钮、操作或文本字段。我希望当我选择多个单元格,然后单击以保存按钮并将单元格中的所有数据存储在 Firebase 上。

【问题讨论】:

  • 使用 didSelectRowAt 并跟踪在单独数组中调用的每个索引应该相对简单,然后使用该数组作为引用从表视图的主数据源中提取数据并将其发送到 Firebase .你试过吗?
  • @SuperTully 不,我没有尝试过。我是 swift 新手,我第一次这样做。
  • 好的,请看下面我的回答。

标签: ios swift firebase tableview cell


【解决方案1】:

如果您查看 Apple 文档 here,您将看到讨论如何正确处理多行选择的部分。

正如我在评论中所说,您需要使用

tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)

方法,并在该函数内部将 indexPath.row 值附加到一个数组,您可以在该函数调用之外引用该数组(例如,您可以将其设置为视图控制器的实例属性)。一旦选择了所有需要的行,当用户单击发送按钮时,您可以遍历索引数组,然后从数据源中提取必要的记录并将其上传到 Firebase,或者您可以填充一个临时数组并发送整个将数组添加到 Firebase,无论哪种方式最适合您。

这是我的意思的一个简单示例

var indexArray: [Int] = []

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  
   indexArray.append(indexPath.row)
   
}

func sendToFirebase() {
 for index in indexArray {
  //... get record from datasource and send to Firebase
 }
}

不过,请务必查看 Apple 的文档,因为它讨论了取消选择行并使用复选标记作为显示所选行的最佳做法。

【讨论】:

  • 这有助于我了解单元格,但我想问如何从数据源记录?直到现在我还没有遇到whit数据源。这是我的第一个应用程序。
  • @AnDon - 您的数据源是您的单元格在屏幕上显示时从中提取数据的来源。因此,如果您的单元格标签包含电影名称,例如,您可以使用包含电影名称的数组(字符串类型),然后在 cellForRowAtIndexPath 方法中使用 indexPath 来从该数组对象中提取正确的数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多