2016-11-02 203 views
0

對於混淆標題感到抱歉,但這是我的問題。我做了從「superVC」(collectionviewcell)到「childVC」的繼續,並且運行良好。那麼我想再次從那個「childVC」繼續到「secondChildVC」(這是所有的數據來自superVC)。可能嗎?因爲我在執行那個賽季時總是得到一個零值。segue並將數據從viewcontroller傳遞到viewcontroller到另一個viewcontroller

它是這樣的:SuperVC - > ChildVC - > secondChildVC

這裏是superVC SEGUE:

var destination = [DestinationData]() 
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "DestinationDetailVC"{ 
     let detailVC = segue.destination as? DestinationDetailVC 
     if let data = sender as? DestinationData{ 
      detailVC?.destinationDetail = data 
     } 
    } 
} 

這裏是第二個VC賽格瑞

var destinationDetail : DestinationData? 
@IBAction func goToMapOnPressed(_ sender: Any) { 
    let detail = destinationDetail 
    self.performSegue(withIdentifier: "DestinationMapVC", sender: detail) 
    print(detail) 
} 
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "DestinationMapVC"{ 
     let detailVC = segue.destination as? DestinationMapVC 
     if let data = sender as? DestinationData{ 
      detailVC?.destinationMapDetail = data 
     } 
    } 
} 

感謝

+0

您可以使用導航控制器中的後退按鈕進入前一個視圖控制器。 –

+0

錯誤對不起,我的不好解釋...我想繼續,並將數據從ChildVC傳輸到secondChildVC,但ChildVC中的數據來自SuperVC。它的東西像SuperVC - > ChildVC - > secondChildVC,導致所有的數據來自superVC。 @AbhishekBiswas – RoccoBerry

+0

@RoccoBerry如果我正確理解你的問題,你可能想訪問你的SuperVC和稍後在SecondChildVC中的一些數據。如果是這樣,那麼我建議你應該使用__si​​ngleton__。 – Adeel

回答

0

我認爲你正在發送陣列DestinationData第一賽格,但裏面如果數據是DestinationData種類,那麼數據將被髮送到下一個VC,但實際上,您發送的是DestinationData對象的數組,因此if條件失敗,因此數據不是傳遞到childVC

這就是爲什麼你可能會在secondChildVC零,因爲沒有 childVC的數據。

因此,您可以修改條件來檢查數組,因爲destination包含數組類型的數據。或者從prepareSegue方法中刪除條件。

代碼:

//Write this code in to get that clicked object then pass that object in sender 
let destTemp = sender[your selected index] 

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     if segue.identifier == "DestinationDetailVC"{ 
      let detailVC = segue.destination as? DestinationDetailVC 
      if let data = sender as? DestinationData{ 
       detailVC?.destinationDetail = data 
      } 
     } 
    } 

希望它能幫助。

快樂編碼...

相關問題