2017-06-13 1 views
0

は、私のDetailChannelでswift3の別のViewControllerにcollectionViewデータを送信する方法は?私は私のコレクションビューのデータ(list.assets_id)にしたい

override func viewDidLoad() { 
     super.viewDidLoad() 
     debugPrint("DetailsChannel:::::\(vedio_id)") 

     if let stringVideo = vedio_id { 
      print(stringVideo) 
     } 
} 

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 

     vedioId = id 

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

    if segue.identifier == "detailChannel"{ 

     let destinationVC = segue.destination as! DetailsChannel 
     destinationVC.vedio_id = vedioId 
    } 
} 

DetailChannel

を解析したいが、私のプロジェクトはうまくいきませんでしたし、準備funcを呼び出していませんでした()。ふるいにいかがですか?

+0

これを行う最善の方法はイニシャライザ内の依存性注入です。問題はスウィフトとストーリーボードがゴミ箱なので、これが何を意味するのかを説明するためには得られません。 – Loxx

+0

有効な 'segue'を'CollectionViewController'を' DetailChannel'に変換しますか?もしそうなら、それをどのように追加しましたか? – nayem

+0

はprepare()を呼び出さずにDetailChannelを直接呼び出すため、DetailChannelはCollectionViewControllerからデータを取得しませんでした。私はprepare()を呼び出してデータを次のビューに送信したいと思います。なぜ私はprepare @nayemを呼んでいないのだろうか? –

答えて

0

私はあなたが DetailChannelCollectionViewCellからsegueを追加しましたね。そのsegueを削除してください。

今、あなたのCollectionViewControllerないCollectionViewCell)からDetailChannelsegueを追加します。

  1. まずCollectionViewControllerDetailChannel へのコントロールのドラッグアンド手放す:あなたはそれを追加する方法がわからない場合は、ここでの処理です。 visualize here

  2. その後segueを選択して(あなたのケースdetailChannelで)あなたに意味のある何かという名前を付けます。 あなたcollectionView(_:didSelectItemAt:)メソッド内で今visualize here

次の行を追加します。

performSegue(withIdentifier: "detailChannel", sender: self) 

私はあなたのprepare(for:sender:)が現在呼び出されている願っています。

+0

performSegue(withIdentifier: "detailChannel"、送信者:自己) "未解決の識別子 'performSegue'の使用が発生しました –

+0

@サンサン自身は書いてみません。ここに。 – nayem

関連する問題