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;

似乎数据源方法在我初始化它们时运行一次,但 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。创建两个插座,每个表视图一个,并确保在界面构建器中将它们连接起来。

然后调用 [tableView1 reloadData];

于 2012-10-25T15:10:28.880 回答
0

这看起来很奇怪:您试图将子 UITableViewControllers 的 dataSource 和委托设置为在您的主视图控制器中声明的(可能)一些本地 UITableViews。它不应该像这样工作 - 子 UITableViewControllers 已经是数据源并委托给他们自己的隐式表视图。无需将它们连接到单独的 UITableView。

编辑:我假设您的“TableViewController”类是 UITableViewControllers。如果不是,那么您所做的可能是有效的,但我需要查看所有代码,包括标题。

于 2012-10-25T16:16:21.217 回答