引数

2012-03-15 6 views
0

私は方法持っているとセレクタを呼び出す:引数

-(void)pickTheQuiz:(id)sender etat:(int)etatQuiz{ 
    //i need to get the etatQuiz value here  


} 

とどこかに私のコードでは、私はこのような上記のメソッドを呼び出す:

int etat_quiz=4; 
[button addTarget:self action:@selector(pickTheQuiz:etat:)withObject:etat_quiz forControlEvents:UIControlEventTouchUpInside]; 

その際、私はエラーを得た:

Receiver type UIButton for instance message does not declare a method with selector 'addTarget:action:withObject:forControlEvent 

EDIT:

-(void)pickTheQuiz:(id)sender etat:(int)etatQuiz{ 


    NSLog(@"The part number is:%i",((UIControl*)sender).tag); 

} 

答えて

3

thisのような引数を渡すことはできません。代わりに、 "etatQuiz"をyoのタグとして設定することができますあなたのセレクターにアクセスすることができます。 例:

button.tag = etatQuiz; 
[button addTarget:self action:@selector(pickTheQuiz:) forControlEvents:UIControlEventTouchUpInside]; 


-(void)pickTheQuiz:(UIButton *)sender { 
    int value = sender.tag; 


} 
+0

と私は複数の情報を渡したい場合は?たとえば2つのタグがあります。 thnxは事前に。 – Luca

+0

http://stackoverflow.com/questions/3716633/passing-parameters-on-button-actionselectorこのリンクをご覧ください – Sree

0

最も単純な解決策は、整数変数をボタンのtagプロパティとして追加することです。その後、((UIButton *) sender).tagを使用して検索できます。

int etatQuiz = ((UIButton *) sender).tag; 
2

あなたはaddTargetの間違ったを使用している、あなたが実行する必要があります:次にpickTheQuiz:方法で

button.tag = 4; 
[button addTarget:self action:@selector(pickTheQuiz:) forControlEvents:UIControlEventTouchUpInside]; 

addTarget:self action:@selector(pickTheQuiz:) forControlEvents:(UIControlEventTouchUpInside) 

、ボタン

のタグに例えば変数を追加
+0

あなたのソリューションを使用してコンパイルすると「::」が使用される理由がありますか? – Luca