2017-02-10 71 views
0

我有一個使用Firebase的Swift應用程序。在這部分應用程序中,有2個VC在Tab Bar Controller中,然後是導航控制器。所以TBC - > NavC - > VC。在標籤欄中的2個視圖控制器之間傳遞字符串

我需要從主TBC VC傳遞一個字符串。這是一張卡片的Firebase ID。使用該ID,我可以訪問該卡節點上的所有孩子,但沒有它我無法訪問。

我一直在使用prepareForSegue試過..

let tabVc = segue.destination as! UITabBarController 
let navVc = tabVc.viewControllers!.first as! UINavigationController 
let destinationVC = navVc.viewControllers.first as! MonthlyNutViewController 

destinationVC.cardID = cardID 
print(cardID) 

我已經設置了一個斷點,並沒有擊中。

我已經看到了一些舊的SO帖子,提示我在appDelegate中創建了一個全局變量,但我認爲這是令人不悅的。

什麼是我最好的方式來傳輸該字符串? 謝謝。

回答

0

如果它只是一個變量,我會去appDelegate。您也可以選擇創建單例來保存更復雜的數據模型。

只需聲明變量在appDelegate

class AppDelegate: UIResponder, UIApplicationDelegate { 
    var myFirebaseString : String? 

,然後從ViewControllers

訪問
let appDelegate = UIApplication.shared.delegate as! AppDelegate 
appDelegate.myFirebaseString = "key" 

,然後在第二個控制器

let appDelegate = UIApplication.shared.delegate as! AppDelegate 
ley localKey = appDelegate.myFirebaseString 
相關問題