2017-07-01 3 views
0

Firebaseを使用してデータを取得して保存するアプリがあります。私のViewDidLoadでは、私は以下を使用しています:XcodeのUIが最新のFirebase値で更新されない

fullnameTextField.text = currentUser.fullName 

ここで、currentUser.fullnameは辞書を参照しています。今、私はFirebaseでこの情報を更新する機能を持っている:

@IBAction func saveFullNameDidTap(_ sender: Any) { 
      let ref = DatabaseReference.users(uid: currentUser.uid).reference().child("fullName") 
      if let fullName = fullnameTextField.text { 
      ref.setValue(fullName) 
      } 
      fullnameTextField.resignFirstResponder() 
      fullnameSaveButton.isHidden = true 
      alert(title: "", message: "Name Successfully Changed", buttonTitle: "OK") 
     } 

これは確かにFirebaseで情報を変更するんが、私はその特定のページをリロードすると、そのフィールド内のデータが戻って古い値に戻ります。私がアプリを再構築すると、それは正しい情報で更新されます。変更されるたびに最新のデータをフィールドに取り込むにはどうすればよいですか?

答えて

0

私はあなたが使用して新しい値でビューをリロードすべきだと思う:

view.setNeedsDisplay() 
0

これは

@IBAction func saveFullNameDidTap(_ sender: Any) { 
      let ref = DatabaseReference.users(uid: currentUser.uid).reference().child("fullName") 
      let fullName = fullnameTextField.text 
      ref.setValue(fullName) 
      currentUser.fullName = fullName! 
      fullnameTextField.resignFirstResponder() 
      fullnameSaveButton.isHidden = true 
      alert(title: "", message: "Name Successfully Changed", buttonTitle: "OK") 
     } 
を動作するようです
関連する問題