self.TableView不适用于ViewController中的TableViewController?

时间:2012-10-25 14:56:19

标签: objective-c ios xcode uitableview

我正在制作一个里面有2个tableview的ViewController。我正在构建它 ViewController - > 2个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 个答案:

答案 0 :(得分:1)

确保TableViewControllers的tableView属性连接到正确的表视图。

答案 1 :(得分:1)

您是否从rootViewController调用reloadData?如果是这样,你打电话

[self.reviewerTableView reloadData];

答案 2 :(得分:0)

我会创建一个实现UITableViewDataSource和UITableViewDelegate协议的UIVIewController。创建两个出口,每个出口一个,并确保在界面构建器中连接它们。

然后调用[tableView1 reloadData];

答案 3 :(得分:0)

这看起来很奇怪:你正试图设置孩子UITableViewControllers' dataSource和delegates是在主视图控制器中声明(可能)的一些本地UITableView。它不应该像这样工作 - 子UITableViewControllers已经是dataSource并委托给它们自己的隐式表视图。没有必要将它们连接到单独的UITableViews。

编辑:我假设您的" TableViewController"类是UITableViewControllers。如果没有,那么您正在做的事情可能有效,但我需要查看所有代码,包含的标题。