在 MainView 上按下按钮时如何在 SecondViewController 上显示不同的图像
How to display a different images on a SecondViewController when a button is pressed on the MainView
我有两个 ViewController。我的第一个视图有两个按钮(button1 和 button2,每个按钮使用 UIImageView
转到第二个视图。
我想要发生的事情是,当我按下按钮 1 时,第二个视图中将显示一个图像,当我返回第一个视图并按下按钮 2 时,另一个图像将显示在视图中。我已经能够通过使用 tableView 来实现这一点,但这并不是我想要布局设计的方式。
任何视图控制器实现 prepareForSegue
,您可以覆盖此函数以将数据传递到您的 segue 的目标视图。
- 在你的故事板中为你的两个 segue 分配一个标识符,比方说 button1 和 button2
在第一个视图控制器中覆盖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
中加载它们,或者只传递图像名称并在第二个视图控制器中加载图像。
我有两个 ViewController。我的第一个视图有两个按钮(button1 和 button2,每个按钮使用 UIImageView
转到第二个视图。
我想要发生的事情是,当我按下按钮 1 时,第二个视图中将显示一个图像,当我返回第一个视图并按下按钮 2 时,另一个图像将显示在视图中。我已经能够通过使用 tableView 来实现这一点,但这并不是我想要布局设计的方式。
任何视图控制器实现 prepareForSegue
,您可以覆盖此函数以将数据传递到您的 segue 的目标视图。
- 在你的故事板中为你的两个 segue 分配一个标识符,比方说 button1 和 button2
在第一个视图控制器中覆盖
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
中加载它们,或者只传递图像名称并在第二个视图控制器中加载图像。