刷新TableView除了拉动刷新

时间:2016-06-06 07:19:11

标签: ios swift uitableview parse-platform

我使用Parse来保存数据,每次向服务器添加新数据时,TableView都不刷新并获取新数据

是否可以刷新TableView,除了刷新?

4 个答案:

答案 0 :(得分:2)

首先,添加观察者方法将在您通知时

NotificationCenter.default.post(name: Notification.Name("ReloadTableData"), object: nil)

在使用表视图的视图控制器中注册该观察器方法。

 NotificationCenter.default.addObserver(self, selector: #selector(self.methodOfReceivedNotification(notification:)), name: Notification.Name("ReloadTableData"), object: nil)

创建一个函数并重新加载表格视图

这可能是您无需重新刷新即可重新加载的可能解决方案。

答案 1 :(得分:0)

您可以使用:

self.tableView.reloadData()

每当用户返回应用程序或打开应用程序时。 您可以在方法中添加

applicationWillEnterForeground

如果用户在执行更新时仍在应用程序中,则使用推送通知。在方法

appDidReceiveRemoteNotification 

重新加载数据。在收到任何推送通知之前,您必须注册远程通知和所有过程,但这是另一个问题。

答案 2 :(得分:0)

首先将刷新控制添加到tableview。因此,请在ViewDidLoad

中添加以下代码
    let refresh = UIRefreshControl()
    refresh.tintColor = UIColor.redColor()
    refresh.attributedTitle = NSAttributedString(string:"Loading..!!", attributes: [NSForegroundColorAttributeName: UIColor.redColor()])
    refresh.addTarget(self, action: "handleRefresh:", forControlEvents: UIControlEvents.ValueChanged)
    self.tableView.addSubview(refresh)
    self.tableView.sendSubviewToBack(refresh)

现在在Pull-to-refresh Tableview时调用方法。

func handleRefresh(refreshControl : UIRefreshControl){
    self.tableView.reloadData()
    refreshControl.endRefreshing()
}

刷新控件:

enter image description here

答案 3 :(得分:0)

parse-server上实施推送通知或使用LiveQuery。

LiveQuery允许您订阅您感兴趣的Parse.Query。一旦订阅,服务器将在实时创建或更新与Parse.Query匹配的Parse.Object时通知客户端

LiveQuery已经支持IOS

有关详细信息,请参阅hyperLink。