Swift 无法强制转换类型为';UINavigationController';(0x10e360420)至';MainApp.detailViewController';

Swift 无法强制转换类型为';UINavigationController';(0x10e360420)至';MainApp.detailViewController';,swift,uinavigationcontroller,segue,Swift,Uinavigationcontroller,Segue,我有两个视图控制器,它们嵌入在NavigationController中。第一个视图控制器包含一个tableview(用字符串列表填充)。我还有一个viewcontroller(我称之为detailViewController),当点击表格的一行时,它必须出现。它应该显示有关所选行的一些详细信息,我在下面的代码中称之为“id”。在执行segue时,我必须在这两个视图控制器之间传递数据。首先我需要以下函数 func tableView(_ tableView: UITableView, didSe

我有两个视图控制器,它们嵌入在NavigationController中。第一个视图控制器包含一个tableview(用字符串列表填充)。我还有一个viewcontroller(我称之为detailViewController),当点击表格的一行时,它必须出现。它应该显示有关所选行的一些详细信息,我在下面的代码中称之为“id”。在执行segue时,我必须在这两个视图控制器之间传递数据。首先我需要以下函数

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    id = listOfIds[indexPath.row]
    performSegue(withIdentifier: "segue", sender: self)
}
现在在我们执行segue之前,我调用prepareforsegue函数

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let detailview = segue.destination as! detailViewController
    detailview.id = id
}
当我运行应用程序时,我得到了错误信息

 Could not cast value of type 'UINavigationController' (0x10e360420) to 'MainApp.detailViewController'

这部分代码在我正在开发的更大的应用程序中。因此,我制作了一个不同的小应用程序,在那里我尝试做同样的事情,它就像一个魅力。我看不出它在这种情况下如何不起作用。是什么原因导致我可以调试它?

您认为错误消息可能是什么意思?@Fogmeister segue.destination是UINavigationController类型,根据错误,无法转换为detailViewController类型?@Fogmeister我不明白为什么它在这里失败,而在测试应用程序中,它可以工作。segue指向什么I.情节提要?@Fogmeister I控制从viewcontroller(包含列表)的顶部(带正方形的黄色圆圈)拖动到detailViewController,并使用“显示”。这都是故事板里面的