我有两个 ViewController。我的第一个 View 有两个按钮(按钮 1 和按钮 2,每个按钮都使用 UIImageView
连接到第二个 View 。
我想要发生的是,当我按下按钮 1 时,图像将显示在第二个 View 中,而当我返回到第一个 View 并按下按钮 2 时, View 中将显示不同的图像。我已经能够通过使用 tableView 来实现这一点,但这并不是我真正想要的设计方式。
最佳答案
任何 View Controller 都实现了prepareForSegue
,您可以重写此函数以将数据传递到segue的目标 View 。
- 在 Storyboard中为两个 segue 分配一个标识符,例如 button1 和 button2
在第一个 View Controller 中重写
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 } }
在第二个 View Controller 的
viewDidLoad
内,您可以根据在第 2 点设置的image
属性设置 UIImageView 的图像。class SecondViewController: UIViewController { var image: UIImage! @IBOutlet var imageView: UIImageView! override viewDidLoad() { super.viewDidLoad() imageView.image = image } }
注意:请记住将第二个 View Controller 的名称更改为您的名称。
我假设您的第一个 View Controller 中有两个包含两个图像的属性,但您也可以在 prepareForSegue
中加载它们,或者仅传递图像名称并在第二个 View Controller 中加载图像。
关于ios - 当在 MainView 上按下按钮时,如何在 SecondViewController 上显示不同的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31683902/