2016-10-06 4 views
0

私はviewcontrollerにviewcontrollerを持っています。ios - タイプ 'TestApplication.ViewControllerResultat'の値を 'TestApplication.ViewControllerForkertKorrektSide'にキャストできませんでした。

私はFUNC機能を準備し、私のオーバーライドで第二のViewControllerを呼び出そうとすると、私はタイプエラーの値をキャストできませんでした取得

マイコード:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    let ViewControllerResultatet : ViewControllerResultat = segue.destination as! ViewControllerResultat 

    ViewControllerResultatet.LabelTextEben = "\(count)" 

     if count >= 22 
     { 
      ViewControllerResultatet.labelBestaaet = "Tillykke du har bestået prøven!" 
     } 
     else 
     { 
      ViewControllerResultatet.labelBestaaet = "Du dumpede desværre prøven" 
     } 


     let ViewControllerForkertKorrektSide : ViewControllerForkertKorrektSide = segue.destination as! ViewControllerForkertKorrektSide 

     ViewControllerForkertKorrektSide.LabelTextTilSpoergsmaal = Questions[QNumber].Question 


    } 

答えて

0

あなたが2を持っているようです異なるセグ、および2つの異なるサブクラスを含む。 prepare(for segue: sender:)関数では、どのsegueが呼び出されているのかチェックしておらず、2つの異なる強制ダウンキャストがあります。これらのうちの1つが失敗し、「その他の」セグの例外がスローされます。

segue.identifierの値を確認して、どのセグが実行されたかを確認したり、条件付きダウンキャストを使って対処しているビューコントローラを確認したりできます。あなたのセグエ識別子を与えられていないので、私は第二のアプローチが表示されます:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if let viewControllerResultatet : ViewControllerResultat = segue.destination as? ViewControllerResultat { 

     viewControllerResultatet.LabelTextEben = "\(count)" 

     if count >= 22 
     { 
      viewControllerResultatet.labelBestaaet = "Tillykke du har bestået prøven!" 
     } 
     else 
     { 
      viewControllerResultatet.labelBestaaet = "Du dumpede desværre prøven" 
     } 
    } else if let viewControllerForkertKorrektSide : ViewControllerForkertKorrektSide = segue.destination as? ViewControllerForkertKorrektSide { 

     viewControllerForkertKorrektSide.LabelTextTilSpoergsmaal = Questions[QNumber].Question 
    } 
} 

私はあなたのprepare機能だけで先ビュー・コントローラとロジックに整数countプロパティを設定する必要があること、しかし、お勧めしますラベルはで、それはビューコントローラです。

関連する問題