final
делает использование памяти 1*instances
.
Однако static
делает это просто 1
.
Добавить в табличный вид cellForRowAt метод делегата назначить тег кнопки для indexPath.row
cell.button.tag = indexPath.row
@IBAction func btnDeleteYesTapped(sender: UIButton) {
let preferences = UserDefaults.standard
let uid = "u_id"
let acTkn = "acc_tkn"
let u_ID = preferences.object(forKey: uid)
let A_Token = preferences.object(forKey: acTkn)
let params = ["user_id": u_ID!, "access_token": A_Token!,"property_id": propertyID!,"occupants_id": oCCID!]
print(params)
Alamofire.request(propertyoccupantsdelete, method: .post, parameters: params).responseJSON
{
response in
print(response)
let result = response.result.value
print(response)
let data = result as! [String : AnyObject]
let status = data["success"] as! String
if status == "1"{
let indexPath = IndexPath(row: sender.tag, section: 0)
self.occuPantsData.remove(at: indexPath.row)
self.tblOccList.reloadData()
Toast(text: data["message"] as? String).show()
}else{
Toast(text: data["message"] as? String).show()
}
}
}
Вы можете определить свойство для сохранения выбранного indexPath, прежде чем появится диалоговое окно.
var selectedIndexPath: IndexPath?
И измените это
let indexPath = self.tblOccList.indexPathForRow(at: p)
if indexPath == nil {
print("Long press on table view, not row.")
}
на
self.selectedIndexPath = self.tblOccList.indexPathForRow(at: p)
if self.indexPath == nil {
print("Long press on table view, not row.")
}
Затем попробуйте изменить это
let indexPath = self.tblOccList.indexPathForRow(at: buttonPosition)!
на
[114 ]