当应用程序处于打开状态或后台时,我在appdelegate
中使用通知来更新消息框表,然后它正在运行。
Appdelegate(didFinishLaunchingWithOptions
和didReceiveRemoteNotification
):
NSNotificationCenter.defaultCenter().postNotificationName("changeMessageBox", object: nil)
MessageViewController
:
viewdidload
中的:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector (MessagesViewController.reloadtable), name: "changeMessageBox", object: nil)
func reloadtable()
{
clearArrays()
if (PFUser.currentUser()!["firebaseUID"] !== nil)
{
self.updateResultArray(PFUser.currentUser()!["firebaseUID"] as! String)
resultsTable.reloadData()
}
}
并在消息框中刷新数据。
但是当应用程序关闭并且我收到聊天时,消息框(包含来自所有人的消息的窗口而不是个人聊天)不会更新。
我必须打开应用程序,转到消息框,然后返回主页并再次返回消息框,只有表格视图才会刷新。
你们知道我错过了什么吗?
答案 0 :(得分:0)
尝试下面的帖子通知代码,
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), { () -> Void in
NSNotificationCenter.defaultCenter().postNotificationName("changeMessageBox", object: nil)
})
我遇到了同样的问题并且这样解决了。希望这会对你有所帮助。
答案 1 :(得分:0)
应用程序处于关闭或处于暂停状态时接收通知将触发
application:handleActionWithIdentifier:forRemoteNotification:completionHandler:
尝试在此方法中发布通知。我想它会更新你的观点。
如果您有使用Notifiacation的查询
,请参阅此文档http://samwize.com/2015/08/07/how-to-handle-remote-notification-with-background-mode-enabled/