打开应用

时间:2016-05-20 23:23:53

标签: ios swift uitableview firebase

当应用程序处于打开状态或后台时,我在appdelegate中使用通知来更新消息框表,然后它正在运行。

Appdelegate(didFinishLaunchingWithOptionsdidReceiveRemoteNotification):

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()

    }
}

并在消息框中刷新数据。

但是当应用程序关闭并且我收到聊天时,消息框(包含来自所有人的消息的窗口而不是个人聊天)不会更新。

我必须打开应用程序,转到消息框,然后返回主页并再次返回消息框,只有表格视图才会刷新。

你们知道我错过了什么吗?

2 个答案:

答案 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/