#ios #swift #uitableview #uikit
Вопрос:
У меня есть два значения username
по умолчанию пользователя , и password
я хочу установить метку, которая находится внутри tableView cell
текста этих значений по умолчанию, но мой код устанавливает только username
пароль, а не пароль
есть какое-нибудь решение?
class UDM {
static let shared = UDM()
let defaults = UserDefaults(suiteName: "saved.data")
}
@IBAction func registerButton(_ sender: Any) {
UDM.shared.defaults?.setValue(usernameRegister.text, forKey: "username")
UDM.shared.defaults?.setValue(passwordRegister.text, forKey: "password")
} // userdefaults are set succesfully
// table view controller
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell2", for: indexPath) as? TableViewCell
cell?.setup(with: UDM.shared,with: UDM.shared)
return cell!
}
///table view cell
func setup(with username:UDM,with password:UDM){
label.text = UDM.shared.defaults?.value(forKey: "password") as? String
label.text = UDM.shared.defaults?.value(forKey: "username") as? String
}
Комментарии:
1. Для этого может быть много причин. Содержит ли passwordRegister.text какое-то значение?? Полезно протестировать метку представления таблицы с некоторым фиктивным значением. Также кажется, что, возможно, вы используете одну и ту же метку для имени пользователя и пароля. Это тоже хорошо проверить. label.text = UDM.общий доступ.значения по умолчанию? .значение(для ключа: «пароль») как? Строка label.text = UDM.общий доступ.значения по умолчанию? .значение(для ключа: «имя пользователя») как? Строка
Ответ №1:
Я думаю, что вы присваиваете одной и той же метке разные значения.
Если вы прочитали свой код, он сначала назначит вам метку с паролем, а затем назначит ту же метку с именем пользователя. Вы должны сделать этикетку 1 или этикетку 2.
func setup(with username:UDM,with password:UDM){
label1.text = UDM.shared.defaults?.value(forKey: "password") as? String
label2.text = UDM.shared.defaults?.value(forKey: "username") as? String
}