1

Interface Builderを使用して.xibファイルにUIButtonを作成する場合、より良いアプローチは何ですか?IBActionメソッドを使用してそのアクションメソッドと必要なコントロールイベントを定義する方が良いですか、または使用する必要があります

[UIButton addTarget:action: forControlEvents:] 

アクションメソッドを定義するメソッド?

どちらのアプローチが優れているのか、そしてその理由は何ですか?

4

3 に答える 3

1

はい。あなたはどんな方法でも使うことができます。

これらの方法は両方とも、既存のeventreporterプログラムから始まります。Interface Builderを使用して、単純なUIButtonを追加します。ボタンをページ下部のラベルの上部に配置し、属性タグを使用してリセットのラベルを付けます。これを配置して定義すると、2つの異なる方法のいずれかによってプログラムにリンクする準備が整います。

addTarget:action:forControlEvents:をボタンで使用する

一方では、プログラムでボタンにアクションを追加したい場合があります。これは、Xcode内からボタンを作成した場合、またはInterface Builderでボタンを作成したが、実行時にその動作を変更したい場合に当てはまります。最初のステップは、ボタンをXcodeに取り込むことです。前に提案したように、Interface Builderでボタンを作成した場合は、ボタン用のIBOutletを作成する必要があります。これは、今では古い帽子になっているはずです。InterfaceBuilderでボタンを作成しなかった場合は、Xcodeで作成できます。これはおそらく、ファクトリクラスメソッドbuttonWithType:を使用することを意味します。このメソッドを使用すると、角の丸い長方形のボタン、または情報ボタンなどのいくつかの特別なボタンの1つを作成できます。どちらの方法でも、Xcodeでボタンオブジェクトを使用できるようになります。

ボタンでIBActionを使用する

アクションをメソッドにリンクするもう1つの方法は、InterfaceBuilder内ですべてを実行することです。これは、(提案したように)Interface Builderでオブジェクトを作成し、実行時にその動作を変更する予定がない場合に推奨される選択です。この手順を使用する場合、ボタンを作成する必要はありません。 IBOutletに。ボタンが押されたときに何が起こるかだけが気になるので、Xcodeからは事実上見えません。これは問題ありません。addTarget:action:forControlEvents:また、先ほど実行した複雑な方法も使用しません。代わりに、直感的なInterfaceBuilderの手段を介して物事を接続します。

于 2012-07-13T12:07:21.930 に答える
0

2つのうちどれでも使用できますが。私がそれを見る唯一の理由IBActionは、あなたがxibを使用したからです。このようにして、作成したものはすべてxibからのものであることがわかります。しかし、繰り返しになりますが、どちらも問題ありません。

于 2012-07-13T11:52:48.963 に答える
0

どちらを使用するかはユーザーによって異なります。xibを使用すると簡単になり、多くのコードを記述しないようにすることができます。

于 2012-07-13T11:47:15.063 に答える