如何将参数传递给 swift 中按钮的 addTarget 方法
How to pass a Parameter to the addTarget method of button in swift
我有一个 CollectionViewCell,我正在研究它的 cellForItemAt 方法。我在每个 Collection 视图单元格中都有一个按钮,它在我的 Collection 视图中定义了 3 个不同的部分。
我正在添加以下代码来设置按钮目标:
cell.buttonView.addTarget(self, action: #selector(buttonPressed(sender:)), for: UIControlEvents.touchUpInside)
现在,我创建了一个新方法:@objc func buttonPressed(sender: UIButton),我在其中向 UIAlertController 添加标题,例如:
让 alertController = UIAlertController(title: , message: "Below actions are", preferredStyle: .actionSheet)
所以基本上,每次点击单元格中的任何按钮时,警报都应该打开,而且每次的标题都会不同。
如何在这里动态传递标题?
如果要传递的标题是按钮的标题,那么你可以简单地这样做:-
@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
}
我有一个 CollectionViewCell,我正在研究它的 cellForItemAt 方法。我在每个 Collection 视图单元格中都有一个按钮,它在我的 Collection 视图中定义了 3 个不同的部分。
我正在添加以下代码来设置按钮目标: cell.buttonView.addTarget(self, action: #selector(buttonPressed(sender:)), for: UIControlEvents.touchUpInside)
现在,我创建了一个新方法:@objc func buttonPressed(sender: UIButton),我在其中向 UIAlertController 添加标题,例如: 让 alertController = UIAlertController(title: , message: "Below actions are", preferredStyle: .actionSheet)
所以基本上,每次点击单元格中的任何按钮时,警报都应该打开,而且每次的标题都会不同。
如何在这里动态传递标题?
如果要传递的标题是按钮的标题,那么你可以简单地这样做:-
@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
}