无法将类型为'UINavigationController'(0x10e360420)的值转换为'MainApp.detailViewController'

时间:2018-09-02 16:51:00

标签: swift uinavigationcontroller segue

我有两个视图控制器,它们嵌入在NavigationController中。第一个视图控制器包含一个tableview(由字符串列表填充)。我还有一个viewcontroller(我称为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'

这部分代码在我正在处理的更大的应用程序中。因此,我制作了一个不同的小型应用程序,尝试在其中做同样的事情,并且在那里发挥了作用。我看不到在这种情况下它怎么不起作用。可能是什么原因导致我可以对其进行调试?

0 个答案:

没有答案