У меня есть ProfileViewController, который содержит файл .xib в качестве представления. В этом представлении данные о текущих пользователях загружаются из базы данных firebase в текстовые поля. Когда я нажимаю кнопку «обновить профиль» в ProfileViewController, вызывается PopUpViewController, и над ProfileViewController появляется всплывающее окно с текстовыми полями, которые пользователь может обновить (например, возраст, вес), а также с кнопкой закрытия и обновления. , Моя проблема в том, что когда я нажимаю кнопку «обновить» во всплывающем окне, я хочу, чтобы информация профиля пользователя автоматически обновлялась в представлении .xib и закрывалась. Мне было интересно, если кто-нибудь может мне помочь с этим? Некоторое время это давало мне покоя.
Я попытался поместить self.removeAnimate () в действие для кнопки обновления. Однако, это только обновляет текстовые поля, если я иду к предыдущему контроллеру представления и затем возвращаюсь в профиль пользователей. Если я пропущу функцию «self.removeAnimate ()» с помощью кнопки обновления и поместлю ее только на кнопку закрытия, она будет отображать обновленную информацию сразу после того, как я нажму кнопку обновления, а затем закрою кнопку.
var ref: DatabaseReference?
//function for updating the current users information in the database.
func updateUser(){
guard let uid = Auth.auth().currentUser?.uid else { return }
let userReference = Database.database().reference()
let values = ["age" : userAgeTextField.text! as String,
"weight": userWeightTextField.text! as String]
userReference.child("users").child(uid).updateChildValues(values)
}
///popup cancel button
@IBAction func cancelButton(_ sender: Any) {
self.removeAnimate()
}
///this is where the updateUser function is called once the user presses the update button, here is where I want to close the popup as well when the update button is clicked.
@IBAction func updateButton(_ sender: Any) {
updateUser()
//self.removeAnimate()
}
//function for removing the popup
func removeAnimate(){
UIView.animate(withDuration: 0.25, animations: {
self.view.transform = CGAffineTransform(scaleX: 1.3, y: 1.3)
self.view.alpha = 0.0;
}, completion:{(finished: Bool) in
if(finished){
self.view.removeFromSuperview()
}
});
}