我可以在单击按钮时删除 tableview 单元格..
但现在我需要从按钮选项中删除 tableview 单元格点击如下图 image how button shows options
在上图中,如果我单击按钮,我会显示一个 PopoverView
,如果我单击删除,那么该 tableview 单元格应该删除,该怎么做?
代码:如果我喜欢下面的..当我点击点按钮然后只有单元格正在删除..但我想要当我点击按钮时popoverview应该从那个显示如果我选择删除然后要删除的单元格?怎么办?
@objc func deleteService(sender:UIButton){
let servId = servicesArray[sender.tag].id
let param = ["service_id" : servId]
APIReqeustManager.sharedInstance.serviceCall(param: param as [String : Any], method: .post, loaderNeed: false, loadingButton: nil, needViewHideShowAfterLoading: nil, vc: self, url: CommonUrl.remove_requests, isTokenNeeded: true, isErrorAlertNeeded: true, isSuccessAlertNeeded: false, actionErrorOrSuccess: nil, fromLoginPageCallBack: nil) { [weak self] (resp) in
if let code = ((resp.dict?["result"] as? [String : Any])){
let success = code["status"] as? [String : Any]
let message = success?["message"] as? String
if message == "Success"{
let selectedIndex = sender.tag
self?.servicesArray.remove(at: selectedIndex)
DispatchQueue.main.async {
self?.servicesTableView.reloadData()
}
}
}else{
self?.view.makeToast(CommonMessages.somethingWentWrong)
}
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ServicesTableViewCell", for: indexPath) as! ServicesTableViewCell
cell.optionsBtn.tag = indexPath.row
cell.optionsBtn.addTarget(self, action: #selector(deleteService(sender:)), for: UIControl.Event.touchUpInside)
return cell
}
显示popover
:
extension PageContentViewController: PopoverViewDelegate {
func value(didSelect item: String, at index: Int, indexPath: IndexPath, sender: UIView) {
if item == "View" {
let vc = Helper.getVcObject(vcName: .ViewRequestDetailsViewController, StoryBoardName: .Requests) as! ViewRequestDetailsViewController
self.checkAndPushPop(vc, navigationController: self.navigationController)
}
else if item == "Edit" {
}else if item == "Delete" {
// if i click delete i need to delete tableview cell
}
}
}
如果我点击按钮弹出框,但是如果点击弹出框删除,我需要删除单元格,怎么办?
答案 0 :(得分:0)
您需要先从 tableView 的数据源数组中删除要删除的项目,如下所示:
self?.servicesArray.remove(at: indexPath.item)
那么你应该能够做到这一点:
tableView.deleteRows(at: [indexPath], with: .fade)