以下のコードにbutton.tagを使用する以外に、ブール値をaddClickedメソッドに渡す方法はありますか?
[cellview.buttonAdd addTarget:self action:@selector(addClicked:) forControlEvents:UIControlEventTouchUpInside];
-(void) addClicked:(id)sender {
}
前もって感謝します。
以下のコードにbutton.tagを使用する以外に、ブール値をaddClickedメソッドに渡す方法はありますか?
[cellview.buttonAdd addTarget:self action:@selector(addClicked:) forControlEvents:UIControlEventTouchUpInside];
-(void) addClicked:(id)sender {
}
前もって感謝します。
整数プロパティを追加する場合は、タグを使用できます。非整数プロパティを追加する場合は、連想参照を含むカテゴリを使用する必要があります。継承するUIButtonはプロパティをまったく投稿できません。あなたはこれを見ることができます:
次のようなものを試してください。
-(void) addClicked:(id)sender
{
UIButton * button = (UIButton*)sender;
NSLog(@"Button Tag: %i", button.tag);
}
ブール値を渡すとはどういう意味かわかりません。
簡単な答え:メソッドに直接追加情報を渡すことはできません。
とにかくなぜあなたはそれをしたいのですか?ボタンがクリックされたという事実以外に、ボタンが通信する必要があることを「知っている」のは何ですか?
これを行う方法は、クリックハンドラーを実装するクラスのインスタンス変数を使用することです。
ボタン自体の内部の状態を本当に維持する必要がある場合は、次のようにサブクラス化します。
@interface CustomButton : UIButton
@property (nonatomic, assign) BOOL myBoolValue;
@end
/* ... */
- (void)addClicked:(id)sender
{
CustomButton *button = (CustomButton *)sender;
if (button.myBoolValue) {
// Whatever you want to do.
}
}