如果在URLSession之后显示视图,则UIButton标签将消失

时间:2018-02-03 20:18:52

标签: swift

我正在创建一个社交应用程序,通过URLSession检查用户是否登录。

所以我创建了3个ViewControllers

  1. CustomLaunchScreenVC
  2. LoginVC
  3. MainVc
  4. 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

1 个答案:

答案 0 :(得分:0)

@rmaddy帮帮我,谢谢你!

解决方案是将所有UI代码移动到主队列

DispatchQueue.main.async(execute: {() -> Void in
    self.goToSigninVC()
})
相关问题