我在我的应用中实施了推送通知。只要有新消息,用户就会从服务器获得推送通知。
当用户点击推送通知时,它会打开应用。我希望我的应用程序在发生这种情况时重新加载tableview,向用户显示最近的新闻源。
在Swift 3中有可能吗?
答案 0 :(得分:3)
据我了解,如果您最近在新闻源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。
希望它有所帮助!