重新加载UITableView中的节数

时间:2018-11-14 06:10:07

标签: ios swift tableview

我有一个“设置”视图控制器,该控制器实质上允许用户在其他视图控制器中更改UITableView中有多少节。我该如何实现一项更改,即在取消设置视图控制器的视图后,重新加载表视图以具有新的节数,而不会删除节中将保留的节中的数据?

编辑:

我尝试将tableView.reloadData()塞回到主视图控制器时调用它,但这不会添加新的部分。

1 个答案:

答案 0 :(得分:1)

  

如何实现更改,即在取消设置视图控制器时,将重新加载表视图以具有新的节数...

致电reloadData()reloadSections(_:with:)。这两种情况均应导致表向其数据源询问节数。

  

...要拥有新的节数,而又不删除将保留的节中的数据?

重新加载表的各部分并没有任何意义,而是尝试保留现有的单元格。仅仅弄清楚哪些仍然有效,哪些无效,就不会给UITableView的界面增加很多复杂性。

请记住,数据根本不是真正在表视图中的-数据应该在模型中,并且可以通过表的数据源访问表。该表只关心其单元格-它对每个单元格显示的数据一无所知。

  

我尝试将tableView.reloadData()塞回到主视图控制器时调用它,但这不会添加新的部分。

听起来表的数据源没有收到节数已更改的消息。尝试在您的numberOfSections(in:)方法中放置一个断点,以便可以查看数据源告诉表应该具有的节的数量。