如何在swift 3中的editingStyle中识别.delete以删除tableview中的单元格

时间:2016-10-08 19:35:19

标签: ios swift uitableview swift3

这是连接到我的表视图的所有函数。为什么我不能删除行?

我也在viewDidLoad

override func viewDidLoad() {
    super.viewDidLoad()
    self.myTableView.dataSource = self
    self.myTableView.delegate = self
    self.myTableView.reloadData()
}


func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return arr.count
}

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

    let cell = UITableViewCell(style: UITableViewCellStyle.subtitle, reuseIdentifier: "incTV")

    cell.textLabel?.text = "X"

    cell.detailTextLabel?.text =  "Y"

    return cell
}


func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
    if editingStyle == .delete {

        myTableView.deleteRows(at: [indexPath], with: .fade)
        arr.remove(at: (indexPath as NSIndexPath).row)
        self.myTableView.reloadData()
    }
}

override func viewWillAppear(_ animated: Bool) {
    myTableView.reloadData()
}

1 个答案:

答案 0 :(得分:4)

首先确保您的表具有委托集,并且您的委托方法位于委托类/控制器中。

其次,尝试使用canEditRowAtIndexPath方法并返回true。