首先,我没有任何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)
}
}
}
答案 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()。