我有一个“设置”视图控制器,该控制器实质上允许用户在其他视图控制器中更改UITableView中有多少节。我该如何实现一项更改,即在取消设置视图控制器的视图后,重新加载表视图以具有新的节数,而不会删除节中将保留的节中的数据?
编辑:
我尝试将tableView.reloadData()塞回到主视图控制器时调用它,但这不会添加新的部分。
答案 0 :(得分:1)
如何实现更改,即在取消设置视图控制器时,将重新加载表视图以具有新的节数...
致电reloadData()
或reloadSections(_:with:)
。这两种情况均应导致表向其数据源询问节数。
...要拥有新的节数,而又不删除将保留的节中的数据?
重新加载表的各部分并没有任何意义,而是尝试保留现有的单元格。仅仅弄清楚哪些仍然有效,哪些无效,就不会给UITableView
的界面增加很多复杂性。
请记住,数据根本不是真正在表视图中的-数据应该在模型中,并且可以通过表的数据源访问表。该表只关心其单元格-它对每个单元格显示的数据一无所知。
我尝试将tableView.reloadData()塞回到主视图控制器时调用它,但这不会添加新的部分。
听起来表的数据源没有收到节数已更改的消息。尝试在您的numberOfSections(in:)
方法中放置一个断点,以便可以查看数据源告诉表应该具有的节的数量。