如何快速将参数传递给按钮的addTarget方法

时间:2018-09-12 07:26:13

标签: uibutton swift4.2

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

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

现在,我创建了一个新方法:@objc func buttonPressed(sender:UIButton)在这里,我要向UIAlertController添加标题,例如: 让alertController = UIAlertController(title :,消息:“以下动作是”,preferredStyle:.actionSheet)

因此,基本上,每次在单元格中点击任何按钮时,警报都应打开,并且每次标题都不同。

如何在此处动态传递标题?

1 个答案:

答案 0 :(得分:2)

如果要传递的标题是按钮的标题,则只需执行以下操作:-

@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
}

在Button的操作中,访问button的标签

    @objc func buttonPressed(sender: UIButton){
        let objectIndex = sender.tag
        let object = yourArray[objectIndex]
let title = object.title
        }