2

これらは 2 つの異なる質問かもしれませんが、基本的には同じことを尋ねます。私は単一のビューアプリを持っています。私の画面にはTable Viewと がありCollection Viewます。

1)テーブルビューとコレクションビューにdatasource(そしてもちろん)を提供したいのですが、(コードをきれいにするために)同じ(メイン)ファイルdelegateに入れたくありません。しかし、インターフェイス ビルダーでは、ビュー コントローラーであるファイルの所有者として(および)ViewController宣言することしかできません。これどうやってするの?プログラムで宣言するのは正しい方法ですか? もしそうなら、それはどこで行われるべきですか?それとも、データソース (およびデリゲート) を から分離するのがベスト プラクティスではないでしょうか?datasourcedelegateViewController

2) テーブル ビューのカスタム セルに、同じ場所 (ファイル) でボタンのアクションを処理したくないボタンがあります。行の選択 (デリゲート obj) を処理します。しかし、もう一度 IB は、アクションをカスタム セル クラスに接続することだけを許可します。アクションを別の場所に接続するにはどうすればよいですか?

事前にご回答いただきありがとうございます、
ダン

4

3 に答える 3

6

オブジェクト ライブラリのオブジェクト (青い立方体) を使用する必要があります。ファイルの所有者が存在するセクション (ドキュメント アウトライン) にドラッグ アンド ドロップします。次に、ID インスペクタで、必要なクラス (たとえばOutsider) として設定します。これにより、オブジェクトをデリゲート/データソースとして設定でき、そこOutsiderに を書き込むこともできますIBAction
トリックは、xib 内にオブジェクトを作成することによって、そのオブジェクト (クラス) を xib に表示することです (これは nib がロードされたときに行われます)。

もう1つ、デリゲートまたはデータソースをプログラムで設定しても問題はありませんが、インターフェースビルダーを使用するとはるかに便利です。

于 2013-02-28T15:10:38.920 に答える
1

1)プログラムで実行します。独自のデリゲートを作成し、コードで割り当てます。クリーナー。

2) ボタンのアクションを ViewController クラスに接続します。それはきれいです。それがView Controllerの目的です。アシスタント エディターをオンにして、「矢印」をヘッダー ファイルにドラッグします。

于 2013-02-28T15:08:20.393 に答える
0

質問1:

しかし、インターフェイス ビルダーでは、ビュー コントローラーであるファイルの所有者をデータ ソース (およびデリゲート) として宣言することしかできません。

質問2:

しかし、もう一度 IB は、アクションをカスタム セル クラスに接続することだけを許可します。アクションを別の場所に接続するにはどうすればよいですか?

どちらも同じ答えです:

インターフェイスビルダーから選択することで、クラスを変更できます。

ここに画像の説明を入力

于 2013-02-28T15:11:16.313 に答える