在tableView中打开特定的viewController

Posted

技术标签:

【中文标题】在tableView中打开特定的viewController【英文标题】:Open specific viewController in tableView 【发布时间】:2017-05-01 18:08:10 【问题描述】:

我正在使用tableView,就像 iPhone 的笔记应用程序一样。 我可以添加/删除注释 (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

我希望 Cells 链接到 viewController,而不是通过 indexPath..

提前致谢!

【问题讨论】:

【参考方案1】:

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

删除笔记: 当用户删除一个笔记时,只需从这个所有笔记的数组中删除 not 即可。

【讨论】:

以上是关于在tableView中打开特定的viewController的主要内容,如果未能解决你的问题,请参考以下文章

如何持久化 tableview 行?

在swift 3中的tableview中更新tableviewcell中的特定行?

快速单击其中一个 tableview 单元格内的按钮后重新加载 tableview

以编程方式在特定 UICollectionViewCell 内的 TableView?

如何在swift 3中删除tableview中特定单元格的按钮

快速显示视图控制器