我使用Parse来保存数据,每次向服务器添加新数据时,TableView都不刷新并获取新数据
是否可以刷新TableView,除了刷新?
答案 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()
}
刷新控件:
答案 3 :(得分:0)
在parse-server上实施推送通知或使用LiveQuery。
LiveQuery允许您订阅您感兴趣的Parse.Query。一旦订阅,服务器将在实时创建或更新与Parse.Query匹配的Parse.Object时通知客户端
LiveQuery已经支持IOS。
有关详细信息,请参阅hyperLink。