根据indexPath,我有一个表格视图,其中的单元格在点击时显示不同的表视图,即:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let nc = UINavigationController()
let productController = ProductController()
nc.viewControllers = [productController]
//Apple
if (indexPath.row == 0) {
productController.navigationItem.title = "Apple Products";
}
//Google
if (indexPath.row == 1) {
productController.navigationItem.title = "Google Products";
}
//Twitter
if (indexPath.row == 2) {
productController.navigationItem.title = "Twitter Products";
}
//Tesla
if (indexPath.row == 3) {
productController.navigationItem.title = "Tesla Products";
}
//Samsung
if (indexPath.row == 4) {
productController.navigationItem.title = "Samsung Products";
}
present(nc, animated: true, completion: nil)
}
然而,当我删除这样的单元格时......
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath)
{
if editingStyle == .delete
{
tableView.beginUpdates()
CompanyController.companies.remove(at: indexPath.row)
CompanyController.logos.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: .fade)
tableView.endUpdates()
}
}
.... indexPath没有更新,所以如果我删除Apple单元格(在indexPath.row 0),Google单元格取而代之,但仍然会导致Apple产品页面,依此类推对其他公司而言。我认为tableView.delete行就是在处理它,但事实并非如此。删除某些内容后如何更新indexPath?
答案 0 :(得分:2)
不要硬编码数据并假定特定的行。将数据放入数组中,并根据索引路径从数组中获取值。删除行时,通过从数组中删除来更新数据模型。
将您的php
方法更新为:
didSelectRow