доступ и настройка пользовательских действий с текстом метки

#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
    }