我有以下手机按键代码:
cell.buttonViewLink.addTarget(self, action: "buttonViewLinkAction:", forControlEvents: UIControlEvents.TouchUpInside)
cell.buttonViewLink.tag = indexPath.item
因此,当我点击
buttonViewLinkAction
时,无论点击哪个单元格,都会得到正确的名称/图像。这很好,并创建了另一个按钮: //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")
}
但当我点击
NSLog
时,我总是从单元格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]"
}
我做错什么了?
最佳答案
正如rmaaddy所评论的,您没有用按钮设置tag,我认为可能无法将tag设置为自定义的按钮操作,所以我认为您需要声明一个实例属性,并在AlertView
方法中设置其值,然后在Int
方法中使用该实例。
var selectedItem = 0
现在在
buttonViewLinkAction
方法中设置imgtagAction
值。@IBAction func buttonViewLinkAction(sender: UIButton) {
self.selectedItem = sender.tag
//Your other code
}
现在使用
selectedItem
内部buttonViewLinkAction
方法。func imgtagAction(sender: UIButton!) {
let face = self.faces[selectedItem]
}