Я использую следующий метод для загрузки большего количества данных в мое табличное представление, и он успешно загружает данные через API.
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
if indexPath.row == (paymentList?.response?.data?.count ?? 1) - 1 {
if totalSize > paymentList?.response?.data?.count ?? 1 {
if self.pageNo == self.currentPage {
self.pageNo += 1
self.getPaymentDetails(page: pageNo)
}
}
}
}
func getPaymentDetails(page: Int) {
MBProgressHUD.showAdded(to: self.view, animated: true)
APIFunctions.instance.getPaymentDetailsList(page: 1, success: { (resData) in
do {
MBProgressHUD.hide(for: self.view, animated: true)
let jsonDecoder = JSONDecoder()
let resObj = try jsonDecoder.decode(PaymentListModel.self, from: resData)
if resObj.statusCode == 200 {
self.totalSize = resObj.response?.total ?? 0
self.currentPage = resObj.response?.currentPage ?? 0
if page == 1 {
self.pageNo = 1
self.paymentList = resObj
} else {
for data in (resObj.response?.data)! {
self.paymentList?.response?.data?.append(data)
}
}
DispatchQueue.main.async {
MBProgressHUD.hide(for: self.view, animated: true)
self.tblPayment.reloadData()
}
} else {
var errorMsg = ""
for text in resObj.fault ?? ["nil"] {
errorMsg.append(text)
errorMsg.append(" ")
}
self.alert(message: errorMsg, title: "Alert!")
}
} catch {
print("JSONSerialization error:", error)
}
}) { (error) in
MBProgressHUD.hide(for: self.view, animated: true)
print("\(error)")
}
}
}
На моем экране также есть панель поиска. Я хочу отфильтровать данные по общим данным, включая данные, которые не загружаются с использованием нумерации страниц. Возможно ли тогда, как и если нет, есть ли альтернатива? Заранее всем спасибо за помощь!