在tableView中打开特定的viewController

时间:2017-05-01 18:08:10

标签: ios swift uitableview cell didselectrowatindexpath

我正在使用像iPhone的笔记应用程序一样的tableView。 我可以添加/删除备注(cells)。

当我删除笔记时,我遇到了一个小问题。

这是我的代码:

  func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { tableView.deselectRow(at: indexPath, animated: true)



    switch (indexPath as NSIndexPath).row {
    case 0:




        let Liste1 = self.storyboard!.instantiateViewController(withIdentifier: "liste1") as UIViewController
        self.present(Liste1, animated: false, completion: nil)

    case 1:
        let Liste2 = self.storyboard!.instantiateViewController(withIdentifier: "liste2") as UIViewController
        self.present(Liste2, animated: false, completion: nil)

    case 2:
        let Liste3 = self.storyboard!.instantiateViewController(withIdentifier: "liste3") as UIViewController
        self.present(Liste3, animated: false, completion: nil)



    default:
        break 

    }

如您所见,每个indexPath.row都可以打开一个已计算的ViewController。 如果我有3个音符而我删除了第2个,则第3个将打开第2个viewController。如果你不明白告诉我.. 我知道这个问题,我不知道是否有一些解决方案可以打开特定的viewController

我希望Cell链接到viewController,而不是indexPath ..

提前致谢!

1 个答案:

答案 0 :(得分:2)

这里的实施是错误的。应该如何在用户选择单元格时按下ViewController(比如名为DetailsViewController)。只应更改与文本相关的文本/注释。应该从所有注释的数组中获取正确的音符(索引是所选单元格的indexPath.row),然后在呈现时传递给DetailsViewController。

删除记事 当用户删除注释时,只需从所有注释的数组中删除not。