2017-08-14 11 views
0

テーブルビューを作成するとき、ViewControllerクラスは "UITableViewDelegate"と "UITableViewDataSource"プロトコルを採用します。テーブルビューを作成するには、これらのプロトコルのメソッドから恩恵を受ける必要があります。私はこれを理解した。データソースとデリゲートのオプション

ただし、テーブルビューを作成するときは、tableview-data sourceおよびtableview-delegateオプションも選択し、ドラッグしてViewControllerクラスと一致させます。これらはストーリーボードファイルで実行されます。

このマッチプロセスはなぜ重要ですか?

なぜこのマッチプロセスを実行しますか?

+1

多くのビューコントローラがあり、すべてのビューコントローラにテーブルビューがあるとします。あなたが言うように、このマッチングプロセスはどのテーブルビューがどのView Controllerに関連付けられているかを接続するのに役立ちます。 –

+0

少なくとも、表示する必要のある行の数と各行のセルの内容をtableViewに伝えるには、 'UITableViewDataSource'を実装する必要があります。どのセルがユーザなどによってタップされたのかを知る必要がある場合は、 'UITableViewDelegate'を実装する必要があります。 Appleのマニュアルを読んで、各プロトコルの機能と必要な理由を理解してください。 https://developer.apple.com/documentation/uikit/uitableviewdelegate https://developer.apple.com/documentation/uikit/uitableviewdatasource – Pancho

答えて

3

両方のプロトコルに準拠する必要はなく、delegatedataSourceStoryboardに設定する必要はありません。これもプログラムでも実行できます。

サブタイプがUITableViewControllerViewControllerUITableViewで作業している場合は、これらの操作を行う必要があります。 UITableViewControllerは自動的に両方のプロトコルに準拠します。

あなたは、システムが、それはテーブルビューを設定するときに呼び出す必要があるクラスのdelegate/dataSource方法、知っておく必要があるため、特定のViewControllerdelegate/dataSourceを設定する必要があります。同じStoryboardのビュー内にテーブルビューを持つ複数のビューコントローラがある場合、現在のビューコントローラにデリゲート/データソースを設定せずに、システムはどのテーブルビューに対してどのクラスを呼び出す必要があるか分かりません。

UITableViewDelegateプロトコルへの準拠はオプションです。テーブルビューにデータを表示するだけで、ユーザーが操作する必要がない場合は、UITableViewDataSourceプロトコルに準拠する必要があります。これは、テーブルビューでセクション/セルの数を設定し、これらの内容も設定するために必要です。

+0

あなたがUITableViewControllerで作業する場合でも、あなたはそれを持っている必要はありませんデータソースとテーブルビューの代理人。 – Abizern

+1

ありがとう。私はıがプロセスのマッチングの目的を理解できないと述べていますが、ほとんどの人がプロトコルのリンクを送信します。あなたは目的を非常にうまく説明しました。 – Goktug

+0

@Goktug - リンクは申し訳ありませんが、詳細情報が表示されますので、公式のドキュメントへのリンクがあります。 –

関連する問題