[英]How to pass argument in @selector?
如何在@selector
中為下面的代碼傳遞參數?
[thisIconBtn addTarget:self action:@selector(changeIconState) forControlEvents:UIControlEventTouchUpInside];
-(void)changeIconState:(UITableViewCell*)thisCell
{
//do something
}
首先,冒號是選擇器的一部分: @selector(changeIconState:)
。
其次,動作是采用一組特定參數的方法——你不能只使用任何方法作為動作。 通常,動作如下所示:
- (void)myAction:(id)sender;
其中 sender 是指向發送操作的 object 的指針。 在您的代碼中,當點擊 thisIconButton 時,該按鈕將作為發送者傳遞。
如果您想要按鈕所屬的單元格,請使用button.superview.superview
獲取它,但我認為您不能更改控制事件的目標方法的 arguments。
嘗試通過選擇器發送數據的最常見原因之一是當您在 UITableViewCell 中使用自定義按鈕時。
Matthias Bauch 提供了一個出色的代碼示例,介紹了如何通過在相關帖子中查找發件人上的單元格來獲取 indexPath。 請參閱https://stackoverflow.com/a/5690329/654870 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.