私が開発したアプリについて質問があります。ログイン画面にこのチェックボックスがあり、ユーザーがそのボックスをチェックすると、ユーザー名 (または私の場合はログインする電話番号) がテキストフィールドで自動的に安全になり、ユーザーがログアウトした場合、彼の電話番号がテキストフィールドに自動的に入力されます。
ユーザーがそのボックスをチェックしないと、ユーザーセッションで電話番号が安全にならないため、ユーザーがログアウトすると、電話番号がログインテキストフィールドに入力されません。
そのチェックボックスは「私を記憶する」ためのものです。ユーザーがそのボックスをチェックすると、ユーザーの電話番号が記憶され、ボックスをチェックしないと、ユーザーが次回ログインするときにユーザーの電話番号が記憶されません。
どうやってみんな?
ここに私のコードがあります:
override func viewDidLoad() {
super.viewDidLoad()
rememberMeFlag = UserDefaults.standard.bool(forKey: "REMEMBER_USER")
checkBoxBtn.addTarget(self, action: #selector(toggleCheckBox(_:)), for: .valueChanged)
checkBoxBtn.isSelected = rememberMeFlag
if rememberMeFlag {
let save_session = UserDefaults.standard.string(forKey: "USER_TELEPHONE")
textPhoneNumber.text = save_session!.substring(from: 1)
}
textPhoneNumber.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)
}
@IBAction func toggleCheckBox(_ sender: UIButton) {
if sender.isSelected == true {
checkBoxBtn.setImage(UIImage(named: "Checked-1"), for: .normal)
sender.isSelected = false
}else{
checkBoxBtn.setImage(UIImage(named: "unCheck"), for: .normal)
sender.isSelected = true
}
}
//this code is for user session
if FIRST_BOOT {
print("first boot")
if let save_session = UserDefaults.standard.string(forKey: "USER_FULLNAME") {
USER_FULLNAME = save_session
}
if let save_session = UserDefaults.standard.string(forKey: "SESSION_TOKEN") {
SESSION_TOKEN = save_session
}
if let save_session = UserDefaults.standard.string(forKey: "USER_PIN") {
USER_PIN = save_session
}
if let save_session = UserDefaults.standard.string(forKey: "USER_TELEPHONE") {
USER_TELEPHONE = save_session
}
if let save_session = UserDefaults.standard.string(forKey: "IDENTITY_NUMBER") {
IDENTITY_NUMBER = save_session
}
if let _ = UserDefaults.standard.string(forKey: "WIZARD") {
// Wizard has opened
} else {
//performSegue(withIdentifier: "loginToWizard", sender: nil)
//return
}
//i use that code to put the user phone num into the textfield
if let save_session = UserDefaults.standard.string(forKey: "USER_TELEPHONE_CACHED") {
textPhoneNumber.text = save_session.substring(from: 1)
}
誰かが私がやりたいことをする方法を教えてもらえますか? そのユーザーセッションをチェックボックス関数内に配置したいだけですが、その後、多くのバグが表示されます。それを行う方法の手順について質問しています。それほど難しくないように見えますが、どうすればよいのかちょっと混乱しています....ありがとう彼ら。