从表视图中删除单元格后更新indexPath.row

根据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?

不要硬编码数据并假设特定的行。 将数据放入数组中,并根据索引路径从数组中获取值。 删除行时,通过从数组中删除来更新数据模型。

didSelectRow方法更新为:

 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let nc = UINavigationController() let productController = ProductController() nc.viewControllers = [productController] productController.navigationItem.title = CompanyController.companies[indexPath.row] present(nc, animated: true, completion: nil) }