我有两个ViewControllers。我的第一个视图有两个按钮(button1和按钮2,每个按钮都会切换到带有UIImageView
的第二个视图。
我想要发生的是当我按下按钮1时,图像将显示在第二个视图中,当我返回到第一个视图并按下按钮2时,另一个图像将显示在视图中。我已经能够使用tableView实现这一点,但这并不是我想要设计我的设计的方式。
答案 0 :(得分:0)
任何视图控制器都实现prepareForSegue
,您可以覆盖此函数以将数据传递到segue的目标视图。
在第一个视图控制器中覆盖prepareForSegue
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
let destination = segue.destinationViewController as! SecondViewController
if segue.identifier == "button1" {
destination.image = image1
} else if segue.identifier == "button2" {
destination.image = image2
}
}
在第二个视图控制器中,在viewDidLoad
内,您可以根据在第2点设置的image
属性设置UIImageView的图像。
class SecondViewController: UIViewController {
var image: UIImage!
@IBOutlet var imageView: UIImageView!
override viewDidLoad() {
super.viewDidLoad()
imageView.image = image
}
}
注意:请记住将第二个视图控制器的名称更改为您的名称。
我假设您的第一个视图控制器中有两个包含两个图像的属性,但您也可以在prepareForSegue
中加载它们,或者只传递图像名称并在第二个视图控制器中加载图像。