gpt4 book ai didi

ios - RefreshControl 在其中一个选项卡中不起作用,其代码在其他选项卡中以类似方式使用

转载 作者:行者123 更新时间:2023-11-29 05:17:42 26 4
gpt4 key购买 nike

应用程序选项卡使用刷新按钮来更新列表,效果很好。尝试使用“下拉刷新”,但根本不起作用。

protocol StaffHistoryDelegate: class {
func updateList()

}

class StaffHistoryController: UIViewController {

@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var activityLoad: UIActivityIndicatorView!

let myRefreshControl: UIRefreshControl = {
let refreshControl = UIRefreshControl()
refreshControl.attributedTitle = NSAttributedString(string: " ")
refreshControl.addTarget(self, action: #selector(refresh(sender:)), for: .valueChanged)
return refreshControl
}()



override func viewDidLoad() {
super.viewDidLoad()

prepareSearch()

delegateStaffHystory = self

do { try self.frc.performFetch() }
catch {}

tableView.refreshControl = myRefreshControl
}


@IBAction func btnRefreshPressed(_ sender: UIBarButtonItem) {
loadingShow(text: " ")
delegateTabController?.loadStaffBill(completion: { (error) in
DispatchQueue.main.async {
loadingHide()
if error != nil {
let alert = getAlert(title: error?.localizedDescription, message: nil)
self.present(alert, animated: true, completion: nil)
}
}
})

}

@objc private func refresh(sender: UIRefreshControl) {
updateList()
tableView.reloadData()
sender.endRefreshing()
}

不幸的是,我不是一名编码员,我真的很难理解该做什么。 (我设法在另外 2 个选项卡上实现“下拉​​刷新”,但这个选项卡的编码方式不同)。

最佳答案

我假设“updateList()”是刷新数据的函数 -

@objc private func refresh(sender: UIRefreshControl) {
updateList()
tableView.reloadData()
sender.endRefreshing()
}

在函数完成计算之前检查tableView是否正在重新加载数据。尝试在“updateList”函数中刷新数据时添加以下行。

tableView.reloadData()

如果“btnRefreshPressed”有效,请尝试此操作

@objc private func refresh(sender: UIRefreshControl) {
self.btnRefreshPressed(UIBarButtonItem())
sender.endRefreshing()
}

关于ios - RefreshControl 在其中一个选项卡中不起作用,其代码在其他选项卡中以类似方式使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59009633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com