我在我的應用中實現了推送通知。每當有新消息時,用戶都會從服務器獲取推送通知。iOS swift 3當從後臺打開應用時重新加載tableview
當用戶點擊推送通知時,它會打開應用程序。我希望我的應用程序在發生這種情況時重新加載tableview,向用戶顯示最近的新聞源。
Swift 3有可能嗎?
我在我的應用中實現了推送通知。每當有新消息時,用戶都會從服務器獲取推送通知。iOS swift 3當從後臺打開應用時重新加載tableview
當用戶點擊推送通知時,它會打開應用程序。我希望我的應用程序在發生這種情況時重新加載tableview,向用戶顯示最近的新聞源。
Swift 3有可能嗎?
據我所知,你最近在你最近的newsfeed ViewController上打開的應用程序很有趣,然後被用戶關閉到後臺。稍後在接收推送時,用戶點擊它並打開相同的新聞源控制器。
您必須訂閱UIApplicationWillEnterForeground
通知您UIViewController
像
NotificationCenter.default.addObserver(self, selector: #selector(yourMethod), name: NSNotification.Name.UIApplicationWillEnterForeground, object: nil)
和實施yourMethod像
func yourMethod() {
// send request to update newsfeed
// then update tableView
// tableView.reloadData()
}
不要忘記退訂
deinit {
NotificationCenter.default.removeObserver(self)
}
這是最簡單的解決方案,我描述了最簡單的情況。還有一些我沒有描述的更復雜的情況,例如
該應用已關閉,您必須根據willFinishLaunchingWithOptions
中收到的推送建立分層結構。
該應用程序在其他頁面上打開,在這種情況下,您必須重新配置viewControllers層次結構才能顯示所需的ViewController。 在這種情況下,您必須通過按下的推送通知將一些數據傳遞給所需的ViewController。
希望它有幫助!