Передача данных изображения кнопки между View Controllers Swift - PullRequest
0 голосов
/ 27 февраля 2019

Я застрял в этой проблеме уже пару часов.

Я пытаюсь установить кнопку с изображением на моем первом ВК, при нажатии на который открывается другой ВК с таким же увеличенным изображением.,Это то, что я получил до сих пор.

Как изображения сохраняются изначально, это всего лишь 4x3 кнопки изображений из xcassets:

 for case let hstack as UIStackView in stack.arrangedSubviews {
        for case let btn as UIButton in hstack.arrangedSubviews {
            let thisIMG = UIImage(named: randArray[k])
            k = k + 1


            btn.setImage(thisIMG, for: UIControl.State.normal)
            btn.imageView?.contentMode = .scaleAspectFill

        }
    }

А вот моя функция подготовки, гдеТест цвет / текст был только для того, чтобы убедиться, что я правильно выполняю часть перехода:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    let dest = segue.destination as? ImageViewController
    let button = sender as? UIButton

    dest?.imgFromFirst = button?.currentImage
    //dest?.testColor = .red
    //dest?.testText = "green eggs and ham"
 }

Во втором контроллере вида у меня есть следующее:

var imgFromFirst: UIImage!
var testText = "this is not changing"
var testColor: UIColor!

@IBOutlet weak var enlargedImage: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()
    //enlargedImage.setTitle(testText, for: .normal)
    //enlargedImage.backgroundColor = testColor

    enlargedImage.setImage(imgFromFirst, for: .normal)
    //enlargedImage.imageView?.contentMode = .scaleAspectFill
}

Я могу изменитьцвет и текст кнопки, но пока не повезло на изображении.Я думаю, что я могу пытаться получить доступ к чему-то, что не существует?Так что imgFromFirst ничего не передается, но я не уверен, как это исправить.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

func prepare(for segue: UIStoryboardSegue, sender: Any?) вызывает, когда пользователь нажимает на кнопку.Текущее состояние кнопки - highlighted, потому что палец пользователя на кнопке и кнопке в это время выделен.Чтобы получить изображение, мне нужно позвонить button?.image(for: .normal), потому что вы установили изображение для нормального состояния кнопки.

0 голосов
/ 27 февраля 2019

В строке dest?.imgFromFirst = button?.currentImage вы можете заменить на это:

dest?.imgFromFirst = button?.image(for: .normal)

или это dest?.imgFromFirst = button?.imageView?.image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...