切换到另一个视图控制器Xcode Swift时丢失数据

我很难弄清楚到底是怎么回事。基本上,我要打开我的第一个视图控制器,该控制器从firebase获取用户信息。即名称和uid。我正在第二个视图控制器中通过didSet()发送数据(这是在打开第二个视图控制器之前发送的)。确实发送了数据,因为我已经使用print()对其进行了测试。但是,当我导航到第二个视图控制器(使用选项卡控制器和导航控制器)时,导航到第二个视图控制器时数据不再存在。

import Foundation
struct User {
    let uid: String
    let name: String
    init(uid: String,dictionary: [String: Any]) {
        self.uid = uid
        self.name = dictionary["uname"] as? String ?? ""
    }
}

然后在我使用的第一个控制器中:

guard let uid = Auth.auth().currentUser?.uid else {
    print("Could not init User at start")
    return }
Database.database().fetchUser(withUID: uid) { (user) in
secondController.user = user
}

.. 在我的secondView控制器中,我有:

  var user: User? {
        didSet {
        printUser()

        }
    }

printUser(){
let uid = user?.uid
print(uid)
}

这就是我知道数据发送的方式。

但是,当我通过标签栏控制器和导航控制器导航到第二个ViewController时,数据不存在。即我在视图中加载了printUser(),但由于user?.uid为nil,因此出现了错误。

我正在通过故事板导航viewControllers。

切换到另一个视图控制器Xcode Swift时丢失数据

xiaoxianchao 回答:切换到另一个视图控制器Xcode Swift时丢失数据

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3104648.html

大家都在问