我已经在这个问题上停留了两个小时。
我正在尝试在第一个VC上有一个带有图像的按钮,单击该按钮时,将打开另一个具有相同图像放大的VC。这是我到目前为止所掌握的。
图像最初是如何存储的,它只是来自xcassets的4x3图像按钮:
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
}
}
这是我的prepare函数,其中测试颜色/文本只是为了确保我正确地执行了部分任务:
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"
}
在第二个View Controller中,我具有以下内容:
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没有得到任何通过,但是我不确定如何解决此问题。
谢谢!
答案 0 :(得分:0)
在dest?.imgFromFirst = button?.currentImage
行,您可以替换为:
dest?.imgFromFirst = button?.image(for: .normal)
或这个dest?.imgFromFirst = button?.imageView?.image
答案 1 :(得分:0)
xs:sequence
。该按钮的当前状态为xs:element
,因为此时用户在该按钮和按钮上的手指被突出显示。
要获取图像,我需要致电func prepare(for segue: UIStoryboardSegue, sender: Any?)
,因为您已将图像设置为按钮正常状态。