如果tableview为空,则仅在viewDidLoad中/之后请求numberOfSectionsInTableView

时间:2012-09-06 21:20:05

标签: ios uitableview

一个简单的tableviewController,为空。可以从按钮启动的模态。表视图的数据源中没有数据,也没有显示任何行。

我打开模态,用它来添加项目,然后返回到tableview控制器。 tableview自动更新,并显示新行。

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

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

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

有什么想法吗?

编辑 - 我进一步缩小了我的问题,因此很快就会关闭此问题,并在Why does an empty tableView check the number of sections but a non-empty one does not?发布更具体的问题

1 个答案:

答案 0 :(得分:1)

来自Apple的documentation

  

UITableView会覆盖UIView的layoutSubviews方法   只有在创建UITableView或的新实例时才调用reloadData   分配新数据源时。

也许你在显示模态后设置表视图的数据源?因此,第二次数据源不会更改,并且tableView不会更新。

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