从后台

时间:2017-01-18 17:06:17

标签: ios iphone uitableview swift3 apple-push-notifications

我在我的应用中实施了推送通知。只要有新消息,用户就会从服务器获得推送通知。

当用户点击推送通知时,它会打开应用。我希望我的应用程序在发生这种情况时重新加载tableview,向用户显示最近的新闻源。

在Swift 3中有可能吗?

1 个答案:

答案 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。

希望它有所帮助!