在控制器之间传递数据显示错误

时间:2017-04-09 06:00:12

标签: ios swift3

我根据我的项目在视图控制器之间放置了一个导航控制器。当我尝试传递数据时,它显示以下错误:

Could not cast value of type 'UINavigationController' (0x10900b008) to 'uday.Food_Drinks_DetailTableViewController' (0x105b72600).

这是我的代码:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
      performSegue(withIdentifier: "fdShow", sender: nil)
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "fdShow"{
        if let indexpath = tablevi.indexPathForSelectedRow {
            let fddVc = segue.destination as! Food_Drinks_DetailTableViewController

            fddVc.FdString = fad[indexpath.row]
        }
    }
}

我在以下行收到错误:

let fddVc = segue.destination as! Food_Drinks_DetailTableViewController

1 个答案:

答案 0 :(得分:1)

我认为你的segue目的地是UINavigationController。如果你没有使用导航控制器的自定义类。您需要将代码更改为

let navVc = segue.destination as! UINavigationController

然后,如果Food_Drinks_DetailTableViewController是导航控制器中的第一个控制器

let fddVc = navVc.viewControllers.first as! Food_Drinks_DetailTableViewController
 fddVc.FdString = fad[indexpath.row]