我正在制作一个里面有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,但不执行数据源方法。
答案 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。如果没有,那么您正在做的事情可能有效,但我需要查看所有代码,包含的标题。