2015-11-12 102 views
2

我想在表格視圖中顯示多個(遠程)通知。 我的問題是,只有一條消息正在顯示。iOS處理多個推送通知

在我AppDelegate.swift我這有:

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]){ 

    let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
    let rVC = storyboard.instantiateViewControllerWithIdentifier("PushVC") 
    let push = rVC as! PushVC 
    self.window!.rootViewController = rVC 

    if let aps = userInfo["aps"] as? NSDictionary { 
     if let alert = aps["alert"] as? NSDictionary { 
      if let message = alert["message"] as? NSString { 
       push.addPushNote(message as String) 
      } 
     } else if let alert = aps["alert"] as? NSString { 
      push.addPushNote(alert as String) 
     } 
    } 
} 

addPushNote是我的ViewController一個方法,將新通知添加到表視圖:

public func addPushNote(message: String){ 
    pushNotes.append(message) 
    table.reloadData() 
    print(message) 
} 

當接收多條消息,打印(信息)顯示我所有 - 但只是第一個顯示。 我懷疑,對於每個推送通知,該消息都被添加到不同的PushVC實例。

任何幫助將不勝感激。

+0

你是如何加載你的表視圖的其餘部分?或者你只希望有一個入口? – beyowulf

回答

3

它因爲不同的實例,你一次又一次地改變根視圖控制器,我們有一個你有你的表視圖的VC的新實例。爲了解決您的問題,請將所有通知保留在Array中,並將該陣列存儲爲用戶默認值。然後,每當有新的通知到達時,首先從UserDefaults中檢索數組,然後在那裏附加通知並將該數組保存在userdefaults中。

還要確保將表視圖的數據源作爲存儲的NSUserDefault數組。

您還可以將您的通知存儲在CoreData,Sqlite等