[英]Send multiple tags with UIButton in UITableView
我遭受了向函數發送兩個標簽以顯示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]
}
您可以子類化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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.