【发布时间】:2019-06-19 03:16:51
【问题描述】:
我有一个应用程序,一旦用户登录,他们就会一直保持登录状态,直到退出。登录后,会显示一些样式方面,例如“名称”,供用户查看。我的问题是,当我以“user1”身份登录然后我注销并以“user2”身份登录时,视图仍然向用户显示“user1”。这是因为在我的 TabBarController 上的 viewdidload() 中设置了包含“user1”的文本,当我注销/登录时,不会再次调用 viewDidLoad(),因此文本保持不变。一旦我再次登录,是否有一些函数或方法可以在我的所有 ViewControllers 上调用 viewDidLoad()?
我尝试了 ViewDidAppear(...) 但我真的不想在每次用户单击 VC 时调用数据库来接收名称
【问题讨论】:
-
您应该在 ViewWillAppear/ViewDidAppear 中更新您的视图并在用户登录时加载该数据。如果您将加载和显示结合起来,那么您做错了。查看缓存和承诺库
-
Dane,您在登录和注销状态之间有哪些转换?是推/流行吗?你使用故事板吗?你使用segues吗?调用 [viewController 视图];会再次调用整个生命周期 - 包括 viewDidLoad,但根本不建议这样做,我可以指导您如何在不违反规则的情况下执行此操作。
标签: swift xcode uiviewcontroller