2017-08-15 16 views
0

私はiosの開発にはとても新しく、ViewController間でデータを渡す方法を学びたいと思っています。上記のコードで宣言されていない型の使用としてのSegue識別子の名前マーク

@IBAction func load3rdScreenPressed(_ sender: Any) { 
    performSegue(withIdentifier: "PlaySongSegue", sender: "Hello") 
} 

// In a storyboard-based application, you will often want to do a little preparation before navigation 
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 

    if let destination = segue.destination as? PlaySongSegue { 
     if let song = sender as? String { 
      destination.selectedSong = song 

     } 
    } 
} 

「宣言されていないタイプPlaySongSegueの使用」しかし、私はこのセグエの識別子を宣言したというエラーメッセージがあります。私が間違っていることを私に指摘してください。

enter image description here

+0

ナビゲートするVCのクラス名(スワイプファイル)は何ですか? –

+0

行の注意:let destination = segue.destination as? **あなたの目的のビューコントローラー**、私はあなたのケースでは、PlaySongViewController – Hooda

答えて

0

segue.destinationあなたがにsegueingているのViewControllerを持っていることをUIViewControllerサブクラスにsegue.destinationをキャストする必要があるので、そこに、タイプUIViewControllerです。スクリーンショットを見ると、これはPlaySongViewControllerと思われます。

"PlaySongSegue"は、セグの識別子です。これは、単一のViewControllerからいくつかのSegueを持っていて、どのViewControllerをsegueingしているかをチェックする場合に使用できます。あなたのユースケースでは識別子を確認する必要はありませんが、後で必要となる可能性があるので、コードにはそれを追加しました。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 

    if segue.identifier == "PlaySongSegue", let destination = segue.destination as? PlaySongViewController { 
     if let song = sender as? String { 
      destination.selectedSong = song 

     } 
    } 
} 
関連する問題