Как изменить фоновое изображение UIButton при нажатии действия в UIAlertController? - PullRequest
0 голосов
/ 04 июня 2018
@IBOutlet weak var myPictureOutlet: UIButton!

@IBAction func myPictureAction(_ sender: Any) {
    let alert = UIAlertController(title: "Chnage Pic", message: "to Change the pic, press the button below", preferredStyle: . alert)

    alert.addAction(UIAlertAction(title: "change picture", style: .default, handler: { (action) in

        alert.dismiss(animated: true, completion: nil)

        self.myPictureOutlet.setBackgroundImage(ButtonImage, for: UIControlState.normal)
    }))
    self.present(alert, animated: true, completion: nil)
} 

Моя цель:

  1. создать UIAlertController при нажатии UIButton (с изображением по умолчанию)
  2. затем при нажатии пользователемна кнопке в UIAlertController она меняет картинку UIButton.

У меня небольшая проблема с этой задачей.UIAlert работает, когда я касаюсь UIButton, однако фон UIButton не меняется.Пожалуйста, просмотрите мой код и скажите, если что-то не так.

1 Ответ

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

Ваш код на самом деле должен работать.Вам не нужна эта строка:

alert.dismiss(animated: true, completion: nil)

UIAlertController удалит ее для вас после нажатия кнопки оповещения.

Также, чтобы улучшить свой код, просто обратитесь к отправителю IBAction, как это:

guard let button = sender as? UIButton else {
    print("Ooops, not a button!")
    return
}
button.setBackgroundImage(ButtonImage, for: UIControlState.normal)
...