Как сохранить выбранный UIButton (с галочкой) и загрузить его в iOS? - PullRequest
0 голосов
/ 30 июня 2018

Я новичок, и вот какой код у меня есть. При нажатии на кнопку, он будет переключаться между галочкой и пустым полем (это хорошо). Однако при выходе из приложения кнопка не сохранит состояние выбора (отметка отмечена).

Прикреплен весь мой код, чтобы вы могли четко видеть, что происходит.

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var checkMarkButton: UIButton!

    let save = "save"

    override func viewDidLoad() {
        super.viewDidLoad()
         if UserDefaults.standard.bool(forKey: "save") == true {
            checkMarkButton.setImage(#imageLiteral(resourceName:                                                   "greyChecked"), for: .normal)

        }else{

            checkMarkButton.setImage(#imageLiteral(resourceName:  "greyUnchecked"), for: .normal)

        }
     }




    @IBAction func checkMarkAction(_ sender: UIButton) {
          UserDefaults.standard.set(true, forKey: "save")
    }


}

видео о том, что происходит

1 Ответ

0 голосов
/ 30 июня 2018

Дайте имя изображения напрямую, я проверил мой ответ, он работает

override func viewDidLoad() {
        super.viewDidLoad()

        if UserDefaults.standard.bool(forKey: "checkBoxSave01") == true {
            checkBoxButton1.setImage(#imageLiteral(resourceName: "id"), for: .normal)

        }else{
            checkBoxButton1.setImage(#imageLiteral(resourceName: "phone"), for: .normal)
        }
    }
    var isFirstClick = true
    @IBAction func checkBoxTapped(_ sender: UIButton) {
        if isFirstClick{
            checkBoxButton1.setImage(#imageLiteral(resourceName: "id"), for: .normal)
            UserDefaults.standard.set(true, forKey: "checkBoxSave01")
            ifFirstClick = false
        }else{
            checkBoxButton1.setImage(#imageLiteral(resourceName: "phone"), for: .normal)
            UserDefaults.standard.set(false, forKey: "checkBoxSave01")
            isFirstClick = true
        }

    }

После нажатия кнопки checkBoxSave01 значение ключа будет истинным, пока вы не удалите приложение.

...