Я пытаюсь показать имя пользователя вошедшего в систему при входе с помощью googleSignIn. GoogleSignIn был настроен в appdelegate, а отображаемое имя пользователя находится в viewController, который запускает вход.
По странной причине я могу «распечатать» имя, которое передается из appDelegate, но не установите UILable.text. В этом отношении я даже не могу установить для UILabel.text какое-либо содержимое stati c внутри didSet.
//APP DELEGATE
var vc: ViewController?
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
if let error = error {
if (error as NSError).code == GIDSignInErrorCode.hasNoAuthInKeychain.rawValue {
print("The user has not signed in before or they have since signed out.")
} else {
print("\(error.localizedDescription)")
}
return
}
vc?.userID = user.profile.name
// Perform any operations on signed in user here.
let userId = user.userID // For client-side use only!
}
// MAIN VIEW CONTROLLER
var userID: String? {
didSet{
DispatchQueue.main.async {
if let name = self.userID {
self.welcomeLabel?.text = name
}
}
}
}
@IBOutlet weak var welcomeLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
GIDSignIn.sharedInstance()?.presentingViewController = self
GIDSignIn.sharedInstance()?.restorePreviousSignIn()
}