我正在创建一个社交应用程序,通过URLSession检查用户是否登录。
所以我创建了3个ViewControllers
CustomLaunchScreenVC :
在查看确实出现之后,我调用了 checkIfSignedIn()函数,该函数检查用户默认值中是否存在保存的会话值。
如果 NOT ,则会加载 LoginVC
如果 YES ,则调用另一个函数: loginWithSession(uid,session)
此函数(loginWithSession)可能因其内部存在URLRequest而被延迟。
如果会话有效则检查网站,然后调用goToMainVC()或goToLoginVC()函数
现在的问题是,如果有一个已保存的会话,但它无效,那么该应用应该转到SignInVC,但确实如此,但此VC上的按钮标签消失了,我不知道为什么
(我尝试了一些东西,在从 loginWithSession()函数中删除 URLSession任务后,问题解决了,按钮很好。但我真的需要这个URLSession函数..)
所以也许是因为因为互联网连接存在一些延迟,之后呈现VC会导致类似的问题。
以下是CustomLaunchScreenVC(简化)的代码:
// {}
// detailOne: "asdf"
// detailTwo: "asdf asdf"
// __proto__: Object { … }
问题视频:Video
答案 0 :(得分:0)
@rmaddy帮帮我,谢谢你!
解决方案是将所有UI代码移动到主队列
DispatchQueue.main.async(execute: {() -> Void in
self.goToSigninVC()
})