首页 > 解决方案 > 无法将“UINavigationController”(0x10e360420)类型的值转换为“MainApp.detailViewController”

问题描述

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

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    id = listOfIds[indexPath.row]
    performSegue(withIdentifier: "segue", sender: self)
}

现在在我们执行 segue 之前,我调用了 prepare for segue 函数

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'

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

标签: swiftuinavigationcontrollersegue

解决方案


推荐阅读