簡體   English   中英

如何在@selector 中傳遞參數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM