由Alex以上回答的工作,如果處理該通知您的視圖控制器恰好是在屏幕上時,通知進來,但往往時間它不是。在
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any])
您想要更新徽章數,然後檢查通知。根據您使用的通知類型,您可以靜靜地處理它(也許使用上面的通知中心方法),或者啓動相應的視圖控制器,並將整個通知或ID傳遞給視圖控制器,並讓視圖控制器使用編號來獲得所有的細節。您可以像通常更改視圖控制器一樣執行此操作,因此如果其導航控制器實例化新視圖控制器,則將其傳遞給數據,然後將其推送到導航控制器上。
let notificationTableViewController = UIStoryboard(name: Identifiers.Storyboard.Notification, bundle: nil).instantiateViewController(withIdentifier: String(describing: NotificationTableViewController.self)) as!
NotificationTableViewController
controller.notificationId = notificationId
rootNavigationController?.pushViewController(notificationTableViewController, animated: true)
如果您有一個標籤欄應用程序,則首先切換選項卡。如果您有某種自定義導航,則需要在您的容器類上調用適當的方法。
http://stackoverflow.com/a/30541063/2303865 –