我正在编写一个应用程序,并设置queryAndAppend函数,查询一个数据库并将信息附加到一组数组(然后用于遍历表视图中的单元格)。查询函数在viewDidLoad()
中调用时会正常工作。我想要拉动刷新功能来额外调用函数(并因此更新表格单元格),但它不能正常工作。下面是相关代码:拉动刷新不执行刷新功能?
var refreshControl = UIRefreshControl()
override func viewDidLoad() {
super.viewDidLoad()
myQueryandAppend(completion: {
self.tableView.reloadData()
})
upComingQueryandAppend(completion: {
self.tableView.reloadData()
})
refreshControl = UIRefreshControl()
refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
refreshControl.addTarget(self, action: #selector(MainPageVC.refresh(_:)), for: UIControlEvents.valueChanged)
}
func refresh(_ sender: AnyObject){
myQueryandAppend(completion: {
self.tableView.reloadData()
self.refreshControl.endRefreshing()
})
upComingQueryandAppend(completion:{
self.tableView.reloadData()
self.refreshControl.endRefreshing()
})
}
不能完全确定为什么它不工作,因为我有一个非常类似的设置,不同的视图控制器(带不同的查询/添加功能)与拉刷新工作正常。
使用tableviewcontroller吗?并且你能显示myQueryandAppend代码吗? – Sahil
你有没有试过看着https://stackoverflow.com/questions/24475792/how-to-use-pull-to-refresh-in-swift-2?noredirect=1&lq=1? – Kevin
@Sahil事实证明,问题在于,由于我没有使用'tableViewController',而是在普通的VC中使用'tableView',我需要额外的代码行:'tableView.addSubview(refreshControl)'。凯文提供的链接帮助了很多。 –