2017-11-09 6 views
0

"Concept"、CoreDataオブジェクトを含むセルを持つテーブルビューがあります。それらはすべてhtmlという属性を持っていますが、これはnilではありません(このテーブルビューviewDidLoad()に印刷して確認しました)。問題は、私がprepareForSegueにそれを渡そうとすると、このデータの種類が消えることです。次のView Controllerにデータを渡しますが、データは消えますか?

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     let indexPath = tableView.indexPathForSelectedRow 
     if segue.identifier == "toConcept"{ 
     let nc = segue.destination as! UINavigationController 
     let vc = nc.viewControllers.first as! PDFViewController 

     print(concepts[(indexPath?.row)!].html 
     //This prints nothing. 

     vc.html = concepts[(indexPath?.row)!].html 
     } 
    } 

問題は、HTMLが何も罰金とではありませんが、prepareForSegueに何も印刷していないし、それもなくなってPDFViewControllerであるviewDidLoad()です。

これを修正する方法を知っている人はいますか?

答えて

0

はこれを試してください。..

func tableView(_ messagesListTableView: UITableView, didSelectRowAt indexPath: IndexPath) { 

    performSegue(withIdentifier: "toConcept", sender: indexPath) 
    print(indexPath) 
} 
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
if segue.identifier == "toConcept"{ 
let indexPath = sender as? IndexPath 
     let nc = segue.destination as! UINavigationController 
     let vc = nc.viewControllers.first as! PDFViewController 

     print(concepts[(indexPath?.row)!].html 
     //This prints nothing. 

     vc.html = concepts[(indexPath?.row)!].html 
     } 

} 
関連する問題