SWIFT / iOS: 屏幕出现时数据需要几秒钟加载

SWIFT / iOS: Data takes a few seconds to load when screen appears

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

这是故事板中的视图控制器:

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

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

我看到上一个屏幕上的 Activity 指示器可能是一个很好的解决方案。任何人都可以验证这一点并指出一个好的 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

        }
    }


}

这个其实很简单...只需从故事板中删除占位符文本即可。这样就不会 "appear very briefly."

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

-- 编辑--

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

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