我有以下单元格按钮的代码:
cell.buttonViewLink.addTarget(self, action: "buttonViewLinkAction:", forControlEvents: UIControlEvents.TouchUpInside)
cell.buttonViewLink.tag = indexPath.item
因此,当我点按buttonViewLinkAction
时,我会在NSLog
中打印正确的名称/图像,无论点击哪个单元格,它始终是正确的数据。这很好用,并创建另一个按钮:
//get buttonViewLinkAction and copy to pasteboard
@IBAction func buttonViewLinkAction(sender: UIButton) {
print("buttonViewLinkAction tapped")
let face = self.faces[sender.tag]
if let imageNAME: String = String(face.name){
print(imageNAME .uppercaseString)
}
if let imageURL = NSURL(string:face.image) {
print(imageURL)
}
UIPasteboard.generalPasteboard().string = face.directLink
let alertView = SCLAlertView()
alertView.addButton("Add [img] tags", target:self, selector:Selector("imgtagAction:"))
alertView.showSuccess((face.name), subTitle: "Image link copied to clipboard")
}
但是当我点击imgtagAction
时,我总是从单元格1获取数据。
//get imgtagAction click
func imgtagAction(sender: UIButton!) {
print("imgtagAction tapped")
let face = self.faces[sender.tag]
if let imageNAME: String = String(face.name){
print(imageNAME .uppercaseString)
}
if let imageURL = NSURL(string:face.image) {
print(imageURL)
}
UIPasteboard.generalPasteboard().string = "[img]" + face.directLink + "[/img]"
}
我做错了什么?
答案 0 :(得分:1)
正如rmaaddy评论的那样,您没有使用按钮设置标记,我认为可能无法将标记设置为自定义AlertView
按钮操作,所以我认为您需要声明一个{{1}实例属性并在Int
方法中设置其值,然后在buttonViewLinkAction
方法中使用该实例。
imgtagAction
现在在var selectedItem = 0
方法中设置selectedItem
值。
buttonViewLinkAction
现在在@IBAction func buttonViewLinkAction(sender: UIButton) {
self.selectedItem = sender.tag
//Your other code
}
方法中使用此selectedItem
。
imgtagAction