2014-07-06 52 views
0

我正在斯威夫特的斯坦福大學iOS課程中研究Card Matching Game項目。我在兩個不同類型的紙牌遊戲的標籤欄上有兩個ViewController,它們推送到顯示移動歷史記錄的相同視圖。我想爲每個遊戲單獨移動歷史記錄,因此在兩種遊戲類型的ViewController中都創建了不同的HistoryViewController實例。然後我會在移動時操作這些實例。如何讓Xcode在從正確的父級導航時使用HistoryViewController的特定實例?例如,如果我在第一次紙牌遊戲中並按下「歷史記錄」,則在紙牌遊戲1的代碼中初始化的HistoryViewController應顯示在歷史視圖中。將自定義ViewController的實例連接到視圖

我附上了故事板的圖像。任何幫助,將不勝感激:)

Screenshot Of Storyboard

回答

2

您可以從兩個觀點controllers.As推動歷史視圖控制器他們都將使史觀controller.As的有多種不同的實例都segue是不同的,你可以給給他們不同的名字,並且做self.performSegueWithIdentifier("push1", sender: self)self.performSegueWithIdentifier("push2", sender: self)或者直接你可以推。

您可以創建歷史labeltextview,並通過要在

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { 
    if (segue.identifier == "push1") { 
     let viewController:ViewController = segue!.destinationViewController as ViewController 
     // pass data to next view 
     viewController.label = @"history for 1st view controller" 
    } 
    else if (segue.identifier == "someanothersegue") { 
     //Perform some another task for any other segue 
    } 
} 

顯示這種方式可以將數據傳遞給目標視圖控制器,它是歷史視圖控制器,你的情況的信息。

+0

感謝您的幫助,因爲prepareForSegue位於父VC中,因此if語句不是必需的,而只是獲取目標VC並更改其屬性。如果可以將目標VC更改爲VC的特定實例,那將會很不錯,但這是有效的。謝謝 :) –