我很难向函数发送两个标签以显示UIActivityViewController
并共享单元格数据,就在我以前一次发送一个值并且在一个UIButton
内之前:
cell.sharefb.tag = indexPath.row
cell.sharefb.addTarget(self, action: "showAlert:", forControlEvents:UIControlEvents.TouchUpInside)
但是现在我已经在UITableView
中实现了部分,所以我的数组就像:
Array[indexPath.section][indexPath.row]
其中一个(部分或行)一次是不够的,我需要将两者都发送到我的功能?我怎么能这样做?
func showAlert(sender:AnyObject){
// i want to use it like :
Array[sender.sectionvalue][sender.rowvalue]
}
答案 0 :(得分:10)
您可以对UIButton进行子类化并为您需要的数据添加属性,例如
class MyButton : UIButton {
var row : Int?
var section : Int?
}
然后你可以设置这些属性,在你的showAlert函数中你可以让它们恢复并使用:
func showAlert(sender:AnyObject){
let theButton = sender as! MyButton
let section = theButton.section
let row = theButton.row
}
修改:根据要求的评论添加了设置按钮的位置:
在你的StoryBoard中,确保你的按钮是MyButton类型(而不是UIButton)。
然后用于设置标记的位置,请勿使用标记但设置属性。所以替换这段代码:
cell.sharefb.tag = indexPath.row
cell.sharefb.addTarget(self, action: "showAlert:", forControlEvents:UIControlEvents.TouchUpInside)
使用:
cell.sharefb.row = indexPath.row
cell.sharefb.section = indexPath.section
cell.sharefb.addTarget(self, action: "showAlert:", forControlEvents:UIControlEvents.TouchUpInside)