【问题标题】:Using a button on a cell to pass data in swift使用单元格上的按钮快速传递数据
【发布时间】:2017-07-04 16:47:43
【问题描述】:

我有 2 个 VC,其中一个叫做 HomeVC,另一个是 DetailVC。我在 HomeVC 上有一个表格视图,它显示带有标签和按钮的单元格。 DetailVC 只是有一个标签。我在表格视图上显示一个字符串数组,当单击单元格上的按钮时,我想将标签中的文本带到 DetailVC 的标签。

现在我可以使用 didSelectRowAt 方法或在 prepare segue 方法中使用 indexPathForSelectedRow 轻松完成此操作。但是这两种情况都需要我点击单元格本身而不是按钮。

我只是 swift 的初学者。但是要解释这一点,不需要太多代码。所以如果可以的话,请详细解释一下。

提前致谢。

【问题讨论】:

  • 将目标添加到 cellForRow 中的按钮

标签: ios swift xcode button


【解决方案1】:

在 cellForRowAt 中将目标添加到按钮,即

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cellID", for: indexPath)
        cell.button.tag = indexPath.row
        cell.button.addTarget(self, action: Selector("buttonAction:"), for: .touchUpInside)

        // other cell element setup
        return cell
    }

在按钮操作时,使用按钮标签从数组中获取项目,即

func buttonAction(sender: UIButton) {
    let data = tableArray[sender.tag]
    // logic to pass present detailVC
}

希望这会奏效!!

【讨论】:

    【解决方案2】:

    如果您使用的是集合视图,则可以使用以下内容

        // Set The Click Action On Button
        cell.bProfileImage.addTarget(self, action: #selector(connected(sender:)), for:
             .touchUpInside)
        cell.bProfileImage.tag = indexPath.row
    

    然后在你的函数中

    // Function For TouchUpInside For Cell
    @objc func connected(sender: UIButton) {
        let data = individualChatsListArray[sender.tag]
        print(data.name)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 2017-12-11
      • 2022-06-14
      • 1970-01-01
      • 2017-02-21
      • 2020-03-05
      相关资源
      最近更新 更多