[英]Pass data through view controller, tab bar controller, navigation controller and to view controller
[英]How to pass data among Navigation bar, Tab bar, View Controller
我首先使用 GoogleSignIn SDK 作為登錄短語。 然后,我使用以下代碼重定向到我的應用程序的主頁。 self.present(tabController, animated: true, completion: nil)
這是我的應用程序的結構(我使用故事板):
標簽欄控制器
現在我已經登錄,我想將數據從 google 傳遞到我的個人資料根視圖控制器。 然而,我不知道該怎么做。
這是我當前的代碼,我已經輸入了 func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!):
let tabController: UITabBarController = self.storyboard?.instantiateViewController(withIdentifier: "homepageVC") as! UITabBarController
let navController: UINavigationController = self.storyboard?.instantiateViewController(withIdentifier: "homepageVC2") as! UINavigationController
let vc = navController.viewControllers[0] as! ViewController
tabController.modalPresentationStyle = .fullScreen
vc.name = fullName
self.present(tabController, animated: true, completion: nil)
** 其中 fullName 是我的 LoginViewController 中的全局變量,它包含 user.fullName(來自 google)。
但是因為它不起作用。 我希望有人能幫我解決這個問題。 非常感謝。
這是我使用 Firebase 等產品登錄時所做的事情,
創建一個為用戶處理所有數據的類
class UserClass: {
static var name: String = ""
static var email: String = ""
static var UID: String = ""
static var youGetTheIdea: String = ""
static var some_array: [String] = [""]
}
然后你可以通過調用從任何類調用它,
//To set var
UserClass.name = Auth().Auth.currentuser.username
//To get var
print(UserClass.name)
我知道對靜態變量有不同的意見,但是只要您在轉到下一個視圖之前進行數據驗證就可以了。
您可能想閱讀此內容以了解更多帶有良好解釋的選項
https://learnappmaking.com/pass-data-between-view-controllers-swift-how-to/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.