У меня очень маленький чат в моем приложении.всякий раз, когда пользователь получает сообщение, сервер отправляет уведомление.В appDelegate я реализовал код ниже:
@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
completionHandler(.alert)
// print(UNNotificationAction)
print("??? recieved")
if notification.request.content.title.contains("Message")
{
print("sub")
print(notification.request.content.subtitle)
print("body")
print(notification.request.content.body)
print("it containt DM ⏰")
let storyboard:UIStoryboard = UIStoryboard(name:"Chat", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "chatRoomVc") as! ChatRoomViewController
vc.becomeFirstResponder()
vc.setRefreshListener {
print("triggered")
}
}
}
и всякий раз, когда он запускается, он вызывает API и получает данные чата.код ниже показывает, как он получает данные:
func setRefreshListener(listener:@escaping ()->Void){
refreshListener = listener
presenter.getttingChatRoomData(aptId: UserDefaults.standard.string(forKey: userAPTID)!, id: UserDefaults.standard.string(forKey: userID)!)
presenter.attachView(view: self)
super.loadView()
super.reloadInputViews()
tableView.reloadData()
}
Кроме того, я могу получить данные правильно.
ПРОБЛЕМА, это не перезагружает данные для представления таблицы !!
есть ли у кого-нибудь решение, почему это происходит?
ОБНОВЛЕНИЕ: приведенный ниже код запускается при получении данных:
func gettingUserChatWithSUCCESS(responce: [chatRomModel]) {
print("✅ getting chat room data SUCCESS")
data = responce
tableView.reloadData()
}