2017-04-09 56 views
0

我已经根据我的项目在导航控制器之间的viewcontrollers。当我试图通过它的数据显示了以下错误:控制器之间传递数据显示错误

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

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

let navVc = segue.destination as! UINavigationController 

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

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

当我上面的代码运行它表明 – udaykumar

+0

:“?UIViewController的”类型的值没有会员'FdString' – udaykumar

+0

我已编辑答案,请检查 –