cellForRowAtIndexPath过滤器后不调用

问题描述:

所以我有swift代码创建配置文件的列表,并允许个人筛选和排序,以及点击它们。就像通讯录一样。它以主/从格式设置,其中主人是人员列表,个人详细信息。我也有一个从主打开一个单独的过滤器和排序页显示​​segue。cellForRowAtIndexPath过滤器后不调用

我的问题是这样的:当从过滤器页面返回numberOfRowsInSection被调用,但不是cellForRowAtIndexPath。我在cellForRowAtIndexPath中放置了断点,当我打开应用程序时它们碰到了,但当我从过滤器屏幕返回时碰到了它们。因此,筛选器将缩小到适当的行数,甚至链接都是正确的(如果我点击第一个已过滤的行,详细信息视图具有正确的配置文件),但是因为它不是“刷新”主列表的内容与cellForRowAtIndexPath,当我从过滤器屏幕返回主控单元无法正确显示。

例如,我有名单:为“安德鲁” 亚当 安德鲁 亚历

我点击过滤器按钮,得到带到一个新的屏幕,做一个基于文本的过滤器,并返回到主列表。它显示 亚当

过滤到合适的人数,但仍显示从最后列表中的第一个元素,而不是刷新。

我做错了什么提示?我可以向numberOfRowsInSection或cellForRowAtIndexPath显示我想要看到的实际代码的任何内容,但不知道这将有助于解决问题,即后者的func只是未被调用。我可以强迫它以某种方式发起攻击,或者这是一种黑客行为,并且在这里存在结构性问题吗?

谢谢!

+0

你触发'tableView.reloadData()'的细胞?或者如何尝试刷新表视图? – luk2302

+0

对不起,我有点累,懒惰,因为没有明确的“TL; DR”我只会问:你用tableView.reloadData()重新载入了表? – Eendje

+0

不要强制自己调用任何委托方法。它是一个黑客。根据我的理解,你的阵列不会令人耳目一新。是这样吗?当你进行过滤时,你是用正确的数据得到的数组? –

过滤你的表叫后: tableView.reloadData() 此方法将触发对的cellForRowAtIndexPath