0

一个简单的 tableviewController,空的。可以从按钮启动的模式。tableview 的数据源中没有数据,也没有显示行。

我打开模态框,用它添加一个项目,然后返回到 tableview 控制器。表格视图会自动更新,并显示新行。

我添加了第二项。表格视图不会自动更新。

我可以通过在 numberOfSectionsInTableView 中登录来判断,即使我去添加第一项并取消,tableview 也会刷新 - 它会询问要显示的部分、行和单元格的数量(如果有的话)。但如果表中有一个预先存在的行,则不会。

我已经搜索了我的代码,但找不到任何会导致 tableview 知道何时添加第一个项目,但之后没有。

有任何想法吗?

编辑 - 我已经进一步缩小了我的问题范围,所以很快就会关闭这个问题,并在Why does an empty tableView check the number of section but a non-empty one not? 上发布了一个更具体的问题?

4

1 回答 1

1

来自 Apple 的文档

UITableView 会覆盖 UIView 的 layoutSubviews 方法,以便它仅在您创建 UITableView 的新实例或分配新数据源时调用 reloadData。

也许您在显示该模式后正在设置表格视图的数据源?所以第二次数据源没有变化,tableView 也没有更新。

另一个关键(我不确定)可能是第一次显示模态。modal 的方法 -addSubview 导致 -layoutSubviews。

于 2012-09-06T21:41:18.697 回答