2017-06-13 65 views
0

我想我收集的資料(list.assets_id)要分析DetailChannel如何發送collectionView數據到swift3中的另一個ViewController?

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,

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

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

,但沒有工作,我的項目,並沒有叫FUNC準備()。如何解決?

+0

這樣做的最好方法是在初始化程序中進行依賴注入,唯一的問題是Swift和Storybaords是垃圾,所以向您解釋這意味着什麼,您不會得到它 – Loxx

+0

您是否添加了有效的'segue' 'CollectionViewController'設置爲'DetailChannel'?如果是這樣,你是如何添加它的? – nayem

+0

沒有調用prepare()並直接轉到DetailChannel,這就是爲什麼DetailChannel沒有從CollectionViewController獲取數據的原因。我想調用prepare()並將數據發送到Next View。我想知道爲什麼不打電話準備@nayem –

回答

0

我想你已經添加segueCollectionViewCellDetailChannel。刪除那個segue

現在從您的CollectionViewControllerCollectionViewCell)添加到segueDetailChannel。如果你不知道如何添加它,這裏的過程是:從CollectionViewControllerDetailChannel

  1. 第一控制拖動和放手。 visualize here

  2. 然後選擇segue並將其命名爲(在你的情況detailChannel)有意義的事情給你。 visualize here

現在你collectionView(_:didSelectItemAt:)方法中加入這一行:

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

我希望你prepare(for:sender:)現在被稱爲。

+0

當我加入 performSegue(withIdentifier:「detailChannel」,sender:self) 「使用未解析的標識符performSegue'發生。 –

+0

@SanSan不,不應該,請嘗試自己寫。這裏。 – nayem

相關問題