-1

iOSでuibuttonのクリック時に値を渡すための多くの記事をチェックしました。しかし、一般的に、人々はタグのプロパティを代替手段として利用します。

しかし、私は次の解決策を見つけました:

 UIButton *btnComLike=[[UIButton alloc] init];

 [btnComLike setFrame:CGRectMake(127, 20, 30, 15)];
 [btnComLike addTarget:self action:@selector(btnCommentLike_click:) forControlEvents:UIControlEventTouchUpInside];
 [btnComLike setTitle:@"Like" forState:UIControlStateNormal];
 [btnComLike setTitle:@"my any string value" forState:UIControlStateReserved];

およびハンドラー側:

-(void)btnCommentLike_click:(id)sender
{
 NSLog(@"%@",[sender titleForState:UIControlStateReserved]);

}

この実行可能な解決策はありますか?ここで、この状態を利用していると思いますUIControlStateReserved

または、この手法の使用に欠点はありますか?

はいの場合、何が間違っているのか教えてください。

4

1 に答える 1

6

私にとって、この解決策は、MVC を打ち負かし、貧弱なボタンを悪用するようなものです。

アクション メソッドで操作するオブジェクトを ivar (インスタンス変数、メンバー変数) に記述し、そこにアクセスするだけです。

docsから、あなたのソリューションも違法と見なされる可能性があります。

UIControlStateReserved
内部フレームワーク用に予約された制御状態フラグ。

于 2013-03-05T06:45:05.003 に答える