2

Я хочу отображать несколько (удаленных) уведомлений в виде таблицы. Моя проблема заключается в том, что отображается только одно сообщение.iOS, обрабатывающий несколько push-уведомлений

В моей 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) 
} 

При получении нескольких сообщений, print (message) показывает мне все, но только первый отображается. Я подозреваю, что для каждого push-уведомления сообщение добавляется в другой экземпляр PushVC.

Любая помощь будет высоко оценена.

+0

Как ты загружая всю оставшуюся табличном? Или вы только ожидаете, что у вас будет одна запись? – beyowulf

ответ

3

Его из-за другого экземпляра, для которого вы снова и снова меняете контроллер корневого представления, и у нас есть свежий экземпляр VC, в котором у вас есть вид в таблице. Чтобы решить вашу проблему, сохраните все свои уведомления в массиве и сохраните этот массив по умолчанию пользователя.

Позже, всякий раз, когда появляются какие-либо новые уведомления, сначала извлекайте массив из UserDefaults и добавьте там уведомление и сохраните этот массив в userdefaults.

Также не забудьте предоставить источник данных в виде таблицы как ваш сохраненный массив NSUserDefault.

Вы можете также хранить уведомления в CoreData, Sqlite и т.д.

Смежные вопросы