Мой вопрос может выглядеть просто, но он не работает. Я много искал и пытался много методов, но он не хочет работать!Как обновлять, а не перезагружать UITableView?
Итак, у меня есть UITableView. На заднем плане одна из моих функций работает и обнаруживает, что если новое сообщение получено, оно записывает это значение в Core Data, и я хочу добавить значки в свои ячейки, когда получаю новое сообщение.
Но когда я пытаюсь это:
func reloadTableView() {
dispatch_async(dispatch_get_main_queue(),{
self.tableView.reloadData()
})
}
не обновляет свою Tableview и не показывают новые значки. Для этого мне нужно:
- Изменить мой контроллер и вернуться к нему
- Или мне нужно перетащить мой Tableview наверх и оставить его
в этих случаях он будет показывать свои значки.
Итак, как я могу обновить мой tableView, чтобы показать новые добавленные значки, не описанные выше 2 метода?
UPDATE
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() вызывается из основного потока. –