2017-03-18 8 views
0

私はちょうどスウィフトの基本を学んでいます。私はアイテムのテーブルビューを持っており、アイテムがクリックされると、その特定のアイテムの詳細を表示するビューを表示したい。私はこれを達成しようとしている以下のコードを持っていますが、Bad Instructionランタイムエラーが発生しています。私がどこに間違っているのか?ありがとう!swift現在モーダルになっています。悪い指示があります

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    // Get the new view controller using segue.destinationViewController. 
    // Pass the selected object to the new view controller. 

    super.prepare(for: segue,sender: sender) 

    switch(segue.identifier ?? "") { 
    //the add item button is pressed 
    case "AddItem": 
     os_log("Adding a new donation.", log: OSLog.default, type: .debug) 

    //an existing item is pressed 
    case "ShowDetailDrill": 

     guard let itemViewController = segue.destination as? ItemViewController else { 
      fatalError("Unexpected destination: \(segue.destination)") 
     } 

     guard let selectedDonationItemCell = sender as? DonationItemCell else { 
      fatalError("Unexpected sender: \(sender)") 
     } 

     guard let indexPath = tableView.indexPath(for: selectedDonationItemCell) else { 
      fatalError("The selected cell is not being displayed by the table") 
     } 

     let selectedDonation = donatedItems.getItem(index: indexPath.row) 

     //TODO: load this to SubmissionVC 
     itemViewController.donatedItem = selectedDonation 

    default: 
     fatalError("Unexpected Segue Identifier; \(segue.identifier)") 
    } 

} 

enter image description here

私はそれがアップデート2

enter image description here

ここで壊れることを言及するのを忘れ

更新:[OK]をので、私はナビゲーションコントローラを削除してからセグエを変更「現代的に現れる」から「見る」まで。セルからアイテムコントローラに直接移動します。すべてが現在動作していますが、ナビゲーションコントローラーと連携していない理由についてまだ多少混乱しています。なぜ誰かがその理由を説明することができれば、それを答えとしてマークします。

+0

おそらく何かはありません。どのラインがクラッシュするのですか? – Paulw11

+0

エラーログを共有してください。 – ocanal

+0

[例外ブレークポイントを追加する](http://stackoverflow.com/a/17802723/1457385)、クラッシュする箇所を確認してください。 – shallowThought

答えて

0

は、表ビューセルのShowDetailDrill segueの起源ですか?もしそうなら、それを削除してから、代わりにtableviewcontrollerからItemViewControllerへ新しいsegueを作成してみてください。

関連する問題