如何以编程方式从 TableView 执行 segue
Posted
技术标签:
【中文标题】如何以编程方式从 TableView 执行 segue【英文标题】:How to perform a segue from TableView programmatically 【发布时间】:2019-02-08 21:12:46 【问题描述】:我在 ViewController 上有一个 TableView,并且想通过按任意行来连接到另一个 ViewController。我的代码是:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
performSegue(withIdentifier: "ShowDetailView", sender: Cell)
我已连接故事板中的两个 ViewController 并将故事板 segue 标识符命名为“ShowDetailView”,但我收到此代码错误? 谁能给我一个建议?
【问题讨论】:
在我看来Cell
是未定义的 - 但您可能真的想提供错误消息
你能试试 sender is nil
2019-02-08 22:18:07.386326+0100 SmallApps[48231:6498227] *** 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[itemLabel
的出口并将其删除,因此请清除它在 IB 中的连接
【参考方案1】:
看来你需要发送点击的单元格来获取内容,所以替换
performSegue(withIdentifier: "ShowDetailView", sender: Cell)
与
performSegue(withIdentifier: "ShowDetailView", sender:arr[indexPath.row])
arr
是表的 dataSource 数组,如果你不需要发送任何东西
performSegue(withIdentifier: "ShowDetailView", sender:nil)
【讨论】:
【参考方案2】:这是因为在目的地“detailsViewController”中有一个名为“itemLabel”的子视图,您要么在代码中删除或重命名它,然后忘记断开其与 UI 的连接。右键单击它并在 itemLabel 插座上点击 X
【讨论】:
以上是关于如何以编程方式从 TableView 执行 segue的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式选择 tableview 上的单元格不会执行关联的 segue
以编程方式从带有动画的 customCell 类中的 tableView 中删除一行
以编程方式从 collectionView 内的自定义 tableView 中进行 Segue
如何以编程方式在 TableView 单元中添加多个 UIImageView