我是创建应用程序的新手,我正在尝试创建一个使用parse.com进行使用Xcode 7和Swift登录和注销的应用程序。到目前为止,我已经制作了注册和登录屏幕以及主屏幕,目前只有一个退出按钮。我有一个名为" signOut"的IBAction方法。按下注销按钮时触发。在其中我只有两行代码:
PFUser.logOutInBackground()
这在连接到互联网时工作正常,但在离线时屏幕冻结10-20秒,同时应用程序尝试连接到网络,然后切换回登录屏幕。我希望它切换到登录屏幕,然后注销,我不明白为什么它没有。我甚至尝试将{{1}}移动到我的登录屏幕的视图控制器的viewWillAppear和viewDidLoad方法,但仍然遇到了同样的问题。也许最令我困惑的是,即使视图没有改变,当应用程序尝试连接到网络时,logout命令之后的任何代码都会继续执行。任何有关此问题的帮助将不胜感激。感谢。
答案 0 :(得分:1)
试试这个:
PFUser.logOutInBackgroundWithBlock({ (error: NSError?) -> Void in
if let error = error {
// Handle error
} else {
self.performSegueWithIdentifier("unwindToLoginViewController", sender: self)
}
})
答案 1 :(得分:0)
您需要确保在负责更新UI的主线程上运行performSegueWithIdentifier
dispatch_async(dispatch_get_main_queue()) {
self.performSegueWithIdentifier("segue that goes back to login screen", sender: self)
}
PFUser.logOutInBackground()