1

私は BigNerdRanch iOS Programming book をフォローしており、UITableViewController を扱うこの 1 つの章にいます。しかし、そのとUITableViewControllerについてどこで見つけられるのか疑問に思っていました。現在、私はそれをdelegatedataSource

@interface ItemsViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate>

しかし、次のようなものはありません。

[self.tableView setDelegate:self]

UITableViewController がそのデリゲートと dataSource をどのように検出するのか疑問に思っています

4

3 に答える 3

5

自分で設定する場合はUITableView、デリゲートとデータ ソースを指定する必要があります。

UITableViewControllerを設定しUITableView、delegate および dataSource プロパティをそれ自体に設定します。をサブクラスUITableViewController化すると、この動作が無料で得られます。

UITableViewControllerdataSource とデリゲートがないため、あなたの質問には欠陥UITableViewがあります。そして、UITableViewControllerそれはそのように物事を設定するため、dataSource とデリゲートです。

于 2012-06-03T22:59:38.587 に答える
1

まず第一に宣言:

@interface ItemsViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate>

View Controller が DataSource および Delegate メソッドの提供を担当していることを示すだけです。これは単なるヒント (ビューがそのプロトコルに準拠していると言っているだけです) と、必要なプロトコルの実装を提供する必要があるという Xcode へのヒント (それ以外の場合、Xcode は、あなたがしていないという警告を表示します) です。 t はデータソースとデリゲート メソッドを実装しましたが、オプションではなく必須メソッドのみを実装しました)。

実際には、Interface Builder で TableView のデータソースとデリゲートを設定しています。IB で TableView をクリックし、右側のペインから [アウトレット] オプションを選択してから、データソースをクリックし、[ファイルの所有者] までドラッグしてデータソースを設定します。デリゲートも同じ。

コードでテーブルを作成している場合は、次のようにデータソースを宣言し、自分自身を委任する必要があります。

tableview.datasource = self;
tableview.delegate = self;
于 2012-06-03T23:43:55.180 に答える
1

Interface Builder (Xcode 内) を介して、または" .delegate =" ( [self.tableView setDelegate: _____)および" .datasource="を介してプログラムで、テーブル ビュー オブジェクト (xib またはストーリーボード ファイル内) にデリゲートと dataSource を設定します。

テーブル ビュー コントローラー (つまり、2 つの異なるオブジェクト) によって管理されるテーブル ビューでこれらを設定していることに注意してください。

于 2012-06-03T22:41:51.063 に答える