我的问题看起来很简单,但不起作用。我搜索了很多并尝试了很多方法,但它不想工作!如何更新,而不是重新加载UITableView?
所以,我有一个UITableView。在后台,我的一个功能可以工作并检测,如果接收到新消息,它会将此值写入Core Data,并且我希望在收到新消息时在我的单元格上添加徽章。
但当我尝试这个办法:
func reloadTableView() {
dispatch_async(dispatch_get_main_queue(),{
self.tableView.reloadData()
})
}
它不更新我的tableView并没有显示出新的徽章。对于这一点,我需要:
- 更改我的控制器,并返回到
- 或者我需要拖我的tableView顶部,让它
在这些情况下,它会告诉我的徽章。
那么,我怎样才能更新我的tableView显示新增加的徽章没有描述上述2种方法?
UPDATE
更新2
我有2个文件:ContactsTableViewController和Messages.swift。
在我Messages.swift我处理新邮件时,我收到一个新的消息,我得到的日志:
print("New message for \(user.jidStr)")
ContactsTableViewController().reloadTableView()
在我ContactsTableViewController:
func reloadTableView() {
self.tableView.reloadData()
print("updated")
}
它重新加载我的tableView,因为我在日志中获得updated
消息,但它不更新它并且我的徽章
你是如何创建你的表视图?你在哪里实现了它的数据源和委托? – Simon
@Simon'class ContactsTableViewController:UITableViewController {'我添加了一个截图。请在我的问题中看看它 –
尝试检查reloadTableView()是否从主线程调用。 –