如何从 swift 中的按钮选项中删除 uitableviewcell?

Posted

技术标签:

【中文标题】如何从 swift 中的按钮选项中删除 uitableviewcell?【英文标题】:How to delate tableview cell from button options in swift? 【发布时间】:2021-04-10 10:23:21 【问题描述】:

单击按钮时我可以删除表格视图单元格..

但现在我需要从按钮选项中删除 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
    


如果我点击按钮弹出框来了,但如果点击从弹出框中删除我需要删除单元格,怎么办?

【问题讨论】:

【参考方案1】:

您需要先从 tableView 的数据源数组中删除要删除的项目,如下所示:

self?.servicesArray.remove(at: indexPath.item)

那么你应该可以做到这一点:

tableView.deleteRows(at: [indexPath], with: .fade)

【讨论】:

我问了什么......你发布了什么?我想要类似的类别计数 @learn_swift 您的问题是关于如何从选项列表中删除 tableView 单元格?

以上是关于如何从 swift 中的按钮选项中删除 uitableviewcell?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 Swift 中表格视图单元格中的默认删除按钮?

如何从 Ext js 中的选项卡中删除活动选项卡?

使用swift在选项卡式视图中的导航栏上添加按钮

当用户以编程方式单击swift ios中的删除按钮时,如何将光标从一个文本字段自动移动到另一个文本字段?

swift - 从 var(UITextField 输入)中删除空格不起作用

如何在iOS Swift 3中从键盘中删除更改语言键按钮