在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的主要内容,如果未能解决你的问题,请参考以下文章
在swift 3中的tableview中更新tableviewcell中的特定行?
快速单击其中一个 tableview 单元格内的按钮后重新加载 tableview
以编程方式在特定 UICollectionViewCell 内的 TableView?