【发布时间】:2016-12-06 00:34:55
【问题描述】:
根据 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 rows 行正在处理这个问题,但事实并非如此。删除某些内容后如何更新 indexPath?
【问题讨论】:
标签: ios swift uitableview