iOS / Swift - 未调用UITableView reloadData

时间:2016-10-03 08:34:13

标签: ios swift uitableview nsnotificationcenter reloaddata

我的表视图控制器类上有以下方法:

func reloadInputFields() {
    dispatch_async(dispatch_get_main_queue()) {
        self.tableView.beginUpdates()
        self.tableView.reloadSections(NSIndexSet(index: 1), withRowAnimation: .Automatic)
        self.tableView.endUpdates()
    }
}

这是从NSNotification调用的。运行时输入此方法很好,似乎调用reloadSections。然而它实际上从未如此。显然我在主线程上执行,因为它是一个UI更新,但我也尝试了后台线程。我也尝试过调用tableView.reloadData()而不是reloadSections,但没有欢乐。表视图肯定存在,我已检查指针是否正确。

cellForRowAtIndexPath numberOfSectionsInTableView heightForRowAtIndexPath numberOfRowsInSection等中的断点未被点击,表格未重新加载。

我的delegatedataSource设置正确,如下所示:

enter image description here

我现在已经挣扎了好几个小时了,这完全让我感到震惊。我们将非常感激地收到任何建议。

2 个答案:

答案 0 :(得分:2)

解决此问题的一些建议:

1. Make sure you have IBOutlet connection to the UITableView.

2. Check delegate and datasource. If necessary, write them programmatically.

3. Make sure your tableView is populated with data before triggering notification.

4. Avoid beginUpdates and endUpdates and use only reloadData on main thread.

答案 1 :(得分:0)

触发通知时表视图是否处于活动状态? 检查表视图控制器是否已释放(它未激活。可能未在屏幕上显示)