我如何在@selector
中爲我的代碼傳遞參數?如何在@selector中傳遞參數?
[thisIconBtn addTarget:self action:@selector(changeIconState) forControlEvents:UIControlEventTouchUpInside];
-(void)changeIconState:(UITableViewCell*)thisCell
{
//do something
}
我如何在@selector
中爲我的代碼傳遞參數?如何在@selector中傳遞參數?
[thisIconBtn addTarget:self action:@selector(changeIconState) forControlEvents:UIControlEventTouchUpInside];
-(void)changeIconState:(UITableViewCell*)thisCell
{
//do something
}
首先,冒號是選擇器的一部分:@selector(changeIconState:)
。
其次,動作是採用一組特定參數的方法 - 您不能僅將任何方法用作動作。通常情況下,動作如下所示:
- (void)myAction:(id)sender;
其中sender是發送操作的對象的指針。在您的代碼中,當點擊thisIconButton時,該按鈕將作爲發件人傳遞。
如果你想在單元格該按鈕所屬,它使用button.superview.superview
但我不認爲你可以改變的控制目標的事件方法的參數得到。
嘗試通過選擇器發送數據的最常見原因之一是在UITableViewCell中使用自定義按鈕時。
Matthias Bauch提供了一個極好的代碼示例,介紹如何通過在相關帖子中查找發件人的單元格來獲取indexPath。見https://stackoverflow.com/a/5690329/654870。
Theres一種方式,你可以調用一個選擇器與多個參數,這個問題已經得到解答...你可以閱讀它[這裏](http://stackoverflow.com/questions/1018195/objective-c-calling-選擇器與多個參數) – iruleonu 2011-06-05 12:18:51