2017-04-09 7 views
0

私のプロジェクトに応じて、View Controller間にナビゲーションコントローラを配置しました。私はその番組次のエラーがデータを渡すことを試みたとき:コントローラ間でデータを渡すとエラーが発生する

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

私はあなたのセグの宛先がUINavigationControllerだと思っています。もしあなたがナビゲーションコントローラ用のカスタムクラスを使用していないなら。あなたは

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

私は答えを編集してください –

関連する問題