0

我有一个 CollectionViewCell,我正在研究它的 cellForItemAt 方法。我在每个集合视图单元格中都有一个按钮,它定义了我的集合视图中的 3 个不同部分。

我正在添加以下代码来设置按钮目标:cell.buttonView.addTarget(self, action: #selector(buttonPressed(sender:)), for: UIControlEvents.touchUpInside)

现在,我创建了一个新方法:@objc func buttonPressed(sender: UIButton) 我正在向 UIAlertController 添加一个标题,例如: let alertController = UIAlertController(title: , message: "Below actions are", preferredStyle: .actionSheet)

所以基本上,每次在单元格中点击任何按钮时,警报都应该打开,而且每次标题都会有所不同。

我如何在这里动态传递标题?

4

1 回答 1

4

如果要传递的标题是按钮的标题,那么您可以简单地这样做:-

@objc func buttonPressed(sender: UIButton){
let title = sender.title(for: .normal)
}

如果它是部分中的其他数据,您可以在按钮上使用标签,并将它们设置为 indexPath.row :-

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
cell.buttonView.tag = indexPath.row
}

在您的按钮操作中,访问按钮的标签

    @objc func buttonPressed(sender: UIButton){
        let objectIndex = sender.tag
        let object = yourArray[objectIndex]
let title = object.title
        }
于 2018-09-12T09:59:13.553 回答