gpt4 book ai didi

ios - swift/iOS : Data takes a few seconds to load when screen appears

转载 作者:行者123 更新时间:2023-11-28 11:13:40 25 4
gpt4 key购买 nike

我创建了一个用户配置文件屏幕,加载后,数据需要几秒钟才能显示。我正在寻找更优雅的解决方案。

这是 Storyboard中的 View Controller :

enter image description here

如您所见,有占位符文本。问题是在加载此屏幕时(在从数据库中检索数据之前),此文本出现的时间非常短。

这是数据完全加载时屏幕的样子:

enter image description here

我已经看到上一个屏幕上的事件指示器可能是一个很好的解决方案。任何人都可以验证这一点并指出一个好的 SWIFT 教程或 Stack Overflow 解决方案吗?

更新:我按照建议将数据加载到之前的 View Controller 上。我遇到的问题是我存储数据的常量在 prepareForSegue 中不可访问 -

override func performSegueWithIdentifier(identifier: String, sender: AnyObject?) {


let query = PFQuery(className:"UserProfileData")
query.whereKey("username", equalTo: (PFUser.currentUser()?.username)!)

query.findObjectsInBackgroundWithBlock { (objects: [PFObject]?, error: NSError?) -> Void in

if error == nil {

if let objects = objects! as? [PFObject] {
for object in objects {

let yourselfObject = object["yourself"] as! String?
let brideGroomObject = object["brideGroom"] as! String?

}
}
} else {
print(error)
}
}


}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

if segue.identifier == "RSVPToUserProfile" {
if let destination = segue.destinationViewController as? UserProfileViewController {

destination.yourselfPassed = yourselfObject
destination.brideGroomPassed = brideGroomObject

}
}


}

最佳答案

这个其实很简单...只需从 Storyboard中删除占位符文本即可。这样它就不会“出现得非常短暂”。

如果您不喜欢空白屏幕的想法,请将加载代码移至显示 View 的位置。在加载代码完成之前不要显示 View 。如果这样做,您必须在呈现时将数据传递给 View Controller 。

-- 编辑--

不要覆盖 performSegueWithIdentifier:sender:!这样做不会实现您的目标。

我再说一遍。将加载代码移动到您调用 的地方执行 segue,并延迟调用直到数据加载完毕。 (即,在您获得项目后,将 perform segue 调用移动到 findObjectsInBackgroundWithBlock block 中。

关于ios - swift/iOS : Data takes a few seconds to load when screen appears,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33324849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com