(SWIFT)如何在解除模态viewcontroller后刷新Parse中的数据?

时间:2015-03-11 00:02:22

标签: ios swift parse-platform reload

首先,我没有任何tableviews或类似的东西 - 我只有普通的UIView控制器。

我有一个显示用户名字的VC(来自Parse的数据),当您单击名为edit的按钮时,您可以在通过Modal显示的新VC中编辑您的名字。代码本身正在工作,它正在更新数据库中的名称,但它没有更新第一个VC中的名称,因为我关闭了编辑VC。我必须强制关闭应用程序并再次打开以查看更改...

任何人都可以帮我解决这个问题吗?我疯了......

这是我的代码:

import UIKit

class usersViewController: UIViewController {


    @IBOutlet weak var firstnameLabel: UILabel!



    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }






    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(true)

        var currentUser = PFUser.currentUser()
        if currentUser != nil {
            currentUser.fetchIfNeededInBackgroundWithBlock({ (bruger: PFObject!, error: NSError!) -> Void in
                var firstn: NSNumber = bruger["firstname"] as NSNumber


                self.firstnameLabel.text = firstn.stringValue



            })


        } else {
            self.performSegueWithIdentifier("goto_login", sender: self)
        }


    }  


}

1 个答案:

答案 0 :(得分:1)

您可以尝试将代码刷新到单独函数中的名字。然后在viewDidAppear中调用该函数

func reloadFirstName(){
  //Whatever you use to set the label
  //Something like:
  //PFUser.currentUser().refresh()
  //self.label.text = PFUser.currentUser().username
}
override func viewDidAppear(animated: Bool) {
  self.reloadFirstName()
}

关键是你必须在从它获取值之前调用PFUser.currentUser()。refresh()。