0

インターフェイスビルダーは初めてです。

Interface Builder でビューを設計したいと思います。
「loadNibNamed」を介してビューをロードできることはわかっています。

ここで、ビューに 2 つのボタン (または 2 つのタップ ジェスチャ レコグナイザー) があり、それらのボタンがタッチされたときに、いくつかの関数を起動する必要があるとします。
'loadNibNamed' を呼び出した viewController のいくつかの関数に接続するにはどうすればよいですか?

ビューは、2 つのボタン (またはタップ ジェスチャ レコグナイザー) を備えた ポップアップビュー ( PopUp ビュー) になります。

4

2 に答える 2

0

IB を初めて使用する場合は、3 つの手順があります。

  1. .h (ヘッダー) ファイルにメソッド名を追加します。

    -(IBAction)som​​eMethod:(id) 送信者;

  2. 変更した .h ファイルを保存します。

  3. インターフェイスビルダーを開きます。

  4. [ツール] メニューの下にある [ファイルの所有者] ウィンドウを開きます。

  5. ファイル所有者ウィンドウの下にあるファイル所有者の選択を Cntrl+クリックします。黒いウィンドウが表示され、その下に一連のインターフェイス オプションが表示されます。someMethod の横に小さな黒い円が表示されます。

  6. その小さな黒い円 (青い線が表示されるはずです) を、メソッドを接続するボタンにドラッグします。別のメニューが表示されます。適切なアクションを選択します (タッチなど)。2 番目のボタンについても繰り返します。

  7. 各ボタンのIBで、プロパティの下の属性リストにタグを付けます(私は信じています)。[プロパティ] ウィンドウが必要な場合は、[ツール] メニューをもう一度見てください。タグ セクションに移動し、各ボタンに異なるタグを付けます。(1、2、3 ... など)。

  8. メソッドを .m ファイルに実装します。ユーザーが選択したボタンに対するアクションを区別するようにしてください。つまり、if (sender.tag == 1) {...} else if (sender.tag == 2) {...}

保存して実行します。

終わり。

于 2012-08-24T20:04:59.043 に答える
0

インターフェイス ビルダー オブジェクト (ボタン) からクラスへのアウトレットを設定する必要があります。

これを行うには、"loadNibNamed" を呼び出すクラスをデリゲート クラスとして作成する必要があります。次に、ボタンを合成してプロパティにします。

それを行ったら、セレクターを追加します。

 [button addTarget:self action:@selector(buttonPressed)

forControlEvents:UIControlEventTouchUpInside];

より良い方法は、その特定のビュー用に新しいクラスを作成することです。次に、「loadNibNamed」を呼び出したクラスでイベントをキャッチしたい場合は、ターゲットを別のものに設定できます。

[button addTarget:(UIMyClass)sender action:@selector(buttonPressed)
   forControlEvents:UIControlEventTouchUpInside];

そこにはたくさんのチュートリアルがあるはずです:)-ところで、xcodeをアップグレードしてストーリーボードを使用することを検討しましたか?

- 編集: -

この問題は、コーディングとインターフェイスの構築を混在させているために発生します。新しいビューのviewcontrollerクラスを作成する必要があると思いますが、セレクターのターゲットを呼び出し元のクラスに変更できます。

セレクターの詳細については、こちらを参照してください: @selector およびその他のクラス (Objective-C)

プログラムでデータを新しいビューにプッシュすることについて、同様の質問がここにあります。

パラメータをビューに渡すことはできますか?ロードされたか、クラスから他のクラスのビューが表示されます

于 2012-08-24T13:33:42.217 に答える