-1

重複の可能性:
Objective C: UIButton によって呼び出されるメソッドに引数を送信する

私はuibutton行動に問題があります。ボタンがクリックされたときに引数を送信したい。タグ prop で動作する例をいくつか見ました。クラスはid送信者です。しかし、私はそれを修正したくありません。アクションは自分のマネージャーに送られます。どのようにできるのか ?

UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    [rightButton addTarget:self
                    action:@selector(goToSubViewManager:)
          forControlEvents:UIControlEventTouchUpInside];

ここにgotosubviewmngがあります

- (void)goToSubViewManager:(ViewType*)vTipi
{


}
4

2 に答える 2

1

のみを使用してください- (void)goToSubViewManager:(id)sender。また- (void)goToSubViewManager

したがって、問題を解決する2つの方法があります。

  1. 変数またはプロパティを使用できます。
- (void)yourMethod

    {
        //your code
        _vTipi = yourVTipi;
    }
- (void)goToSubViewManager
{
    //here you can use _vTipi;
}
  1. UIButton のカテゴリを追加して、id タイプのプロパティ (@property(nonatomic) vTipi など) を追加することができます。UIButton の偽造インスタンス変数。 blog/2011/05/faking-ivars-in-objc-categories-with-associative-references/ ) 次に、次のように使用できます。
- (void)goToSubViewManager:(id)sender
{
    //you can user ((UIButton *)sender).vTipi
}
于 2013-01-04T10:23:04.810 に答える
0

ボタンのタグプロパティを使用できます。そして、割り当てられたタグを比較することにより、そのオブジェクトを使用できます。

UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    [rightButton addTarget:self
                    action:@selector(goToSubViewManager:)
          forControlEvents:UIControlEventTouchUpInside];
rightButton.tag=1;
//

次に、コールバックでそれを次のように比較できます

- (void)goToSubViewManager:(id)sender
{
     if(sender.tag==1){
// you can use an array of that object(if multiple), then apply your logic
}

}
于 2013-01-04T09:37:40.823 に答える