2012-04-30 7 views
-5

可能性の重複:
How can I send two arguments in a selector method?アクション:@selector Objective Cの中

私はボタンのアクションを書いています。しかし、セレクタとして書き込むメソッドは、2つのパラメータを取ります。どのように私は、コード内でメソッド名を記述します。 アクション:@selector(MyMethodは)

+0

-1このユーザーは質問を動的に変更できます。 – Dinesh

+0

これは不可能です。パラメータは1つのみ使用できます。そして、btw、その質問は、ここにたくさんの時間を尋ねられています。 – Till

+0

@Dineshすべてのユーザーができます - 5分以内に、編集イベントをトリガーすることなく行うことができます。 – Till

答えて

1

「アクション」のメソッドに渡される唯一の引数は、アクションをトリガー(それはオプションだ)図であるsender、です。したがって、アクションメソッドに複数の引数を渡すことはできません。送信する引数が複数存在しないからです。

しかし、アクションから別のメソッドを呼び出すだけで、必要な引数を含めることができます。

- (void)viewDidLoad { 
    myButton.action = @sel(myAction); 
} 

- (void)myAction { 
    [self someMethod:@"first argument" withOtherArg:@"second argument"]; 
} 
0

まず最初:あなたが新しい何かを尋ねる前に、より多くの答えを受け入れる必要があり、人々はあなたを助けない傾向があります。

答え:

あなたはあなただけ渡すための一つのパラメータ(辞書自体を)持っています離れparameters.Thisとして渡したい2つの値を置くことができ、辞書を使用してください。コードがより洗練され、将来的に必要になった場合に、より多くのパラメータを渡す柔軟性を提供します。いくつかのコメントを残すことを忘れないでください、あなたは辞書の中に何を入れているのか忘れないでください。

+2

私はuibuttonはそれ自身を送信すると思うので、この解決策は不可能です。 (もちろんそれをサブクラス化しない限り) – Pochi

関連する問題