Я новичок в Swift или, вернее, во всем мире программирования, и я пытаюсь научиться программировать в Swift.Я получил табличное представление с ячейками (VC1), которые содержат различную информацию, предоставленную пользователем.Я хочу щелкнуть по ячейке, чтобы перейти к новому ВК по Segue.Этот новый VC должен отображать информацию о пользователе, который разместил эту информацию.Я передаю userID от VC1 до VC2 по segue.В VC2 я хочу загрузить информацию о пользователе, используя ID пользователя.
Я использую UserModel
import Foundation
class UserModel {
var username: String?
var email: String?
var profilImageUrl: String
var birthdayDate: String?
var gender: String?
init(dictionary: [String: Any]) {
username = dictionary["username"] as? String
email = dictionary["email"] as? String
profilImageUrl = dictionary["profilImageURL"] as? String ?? ""
birthdayDate = dictionary["Geburtsdatum"] as? String
gender = dictionary["gender"] as? String
}
}
Передача userID VC1 -> VC2 работает, я проверил это с помощью команды печати
Мой код из VC2:
//MARK: - Outlets
@IBOutlet weak var nameLabel: UILabel!
//MARK: Var/ Let
var event: EventModel?
var users = [UserModel]()
var user: UserModel?{
didSet {
guard let _username = user?.username else {return}
nameLabel.text = _username
}
}
func loadUserDeatails(){
guard let userID = event?.uid else {return}
fetchUser(uid: userID)
}
func fetchUser(uid: String) {
let userRef = Database.database().reference().child("users").child(uid)
userRef.observeSingleEvent(of: .value) { (snapshot) in
guard let dic = snapshot.value as? [String: Any] else {return}
let newUser = UserModel(dictionary: dic)
self.users.append(newUser)
}
}
override func viewDidLoad() {
super.viewDidLoad()
loadUserDeatails()
print(users)
}
nameLabel пусто, а также массив (пользователи), который я пытался напечатать в ViewDidLoad.Var "dic" содержит информацию о пользователе, которую я скачал с "guard let userID = event? .Uid", так что я думаю, что это должно быть правильно.Надеюсь, кто-нибудь может мне помочь:)