0

内部に2つのテーブルビューを持つViewControllerを作成しています。ViewController -> 2 x TableViewController クラスのように構成しています。私が理解していないのは、TableViewControllers で [self.tableView reloadData] を実行しても何もしないということです。

ViewController で [tableViewA reloadData] を実行すると、TableViewController でデータソース メソッドが実行されます。

TableViewControllers 内で reloadData を呼び出すにはどうすればよいですか?

ありがとう、アラン

編集 - これがViewControllerのセットアップ方法です

if(self.reviewController == nil)
{
    self.reviewController = [[ReviewerTableViewController alloc] init];
}
if(self.approverController == nil)
{
    self.approverController = [[ApproverTableViewController alloc] init];
}
[self.reviewerTableView setDataSource:reviewController];
[self.approversTableView setDataSource:approverController];

[self.reviewerTableView setDelegate:reviewController];
[self.approversTableView setDelegate:approverController];

self.reviewController.view = self.reviewController.tableView;
self.approverController.view = self.approverController.tableView;

初期化するとデータソース メソッドが 1 回実行されるように見えますが、reloadData は内部では機能しません。

私は基本的に UITableViewControllers でデータソース メソッドを使用しているだけで、メソッドを呼び出してネットからデータを取得しています。データを取得したら reloadData を呼び出しますが、データソース メソッドは実行されません。

4

4 に答える 4

1

TableViewControllers の tableView プロパティが正しいテーブル ビューに接続されていることを確認してください。

于 2012-10-25T15:11:56.083 に答える
1

rootViewController から reloadData を呼び出していますか? もしそうなら、あなたは電話します

[self.reviewerTableView reloadData];
于 2012-10-25T15:52:13.717 に答える
0

UITableViewDataSource および UITableViewDelegate プロトコルを実装する UIVIewController を作成します。テーブルビューごとに 1 つずつ、合計 2 つのアウトレットを作成し、インターフェイス ビルダーで確実に接続します。

[tableView1 reloadData] を呼び出します。

于 2012-10-25T15:10:28.880 に答える
0

これは非常に奇妙に思えます: 子 UITableViewControllers の dataSource とデリゲートを、マスター ビュー コントローラーで (おそらく) 宣言されたローカル UITableViews に設定しようとしています。このように動作することは想定されていません - 子の UITableViewControllers は既に dataSource であり、独自の暗黙的なテーブル ビューに委任されています。それらを個別の UITableView に配線する必要はありません。

編集:「TableViewController」クラスが UITableViewControllers であると想定しています。そうでない場合、あなたがしていることは有効かもしれませんが、すべてのコードとヘッダーが含まれていることを確認する必要があります。

于 2012-10-25T16:16:21.217 に答える