如何从自定义视图单元重新加载数据?

时间:2018-05-18 13:38:24

标签: ios swift uitableview

我有

class CartViewController: UIViewController,UITableViewDataSource,UITableViewDelegate

class CartTableViewCell: UITableViewCell

如何从CartViewController文件

更新CartTableViewCell
class CartTableViewCell: UITableViewCell {
@IBAction func buttonDeleteAction(_ sender: UIButton) {
    let url = "http://aaaaaa/cart/"+label.text!+"/del"
    let headers: HTTPHeaders = ["Accept":"application/json","Authorization":"Bearer "+token!]
    Alamofire.request(url, method: .get, headers: headers).responseJSON { response in
        switch response.result {
        case .success(let value):
            let json = JSON(value)
            print("delete json ",json)
            let success = json["success"].boolValue
            print(success)
            if success == true{
                //UPDATE CARTVIEWCONTROLLER
            }
        case .failure(let error):
            print(error)

        }

    }
}

我在互联网上寻找类似的问题,但我找不到合适的解释

1 个答案:

答案 0 :(得分:1)

您需要协议

protocol ReloadManager {
  func callReload(cell:CartTableViewCell) 
}

//

class CartViewController: UIViewController,UITableViewDataSource,UITableViewDelegate,ReloadManager {

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

      let cell = tableView.dequeueReusableCell(withIdentifier:"id") as! CartTableViewCell

      cell.delegate = self

    }
    func callReload(cell:CartTableViewCell) {

       cartsTableView.reloadData()

       // use cell if you want to get indexpath to remove item from the table
    }

}

//

class CartTableViewCell: UITableViewCell {
   var delegate:ReloadManager?
   func btnClicked(_ sender:UIButton){
      delegate?.callReload(cell:self)
   }

}