我有一个使用Firebase的Swift应用程序。在应用程序的这一部分,有两个VC位于标签栏控制器中,然后是导航控制器。所以TBC - > NavC - > VC。
我需要从主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 :(得分: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