在MainView上按下按钮时,如何在SecondViewController上显示不同的图像

时间:2015-07-28 18:02:59

标签: ios swift uiimageview xcode6 ios8.3

我有两个ViewControllers。我的第一个视图有两个按钮(button1和按钮2,每个按钮都会切换到带有UIImageView的第二个视图。

我想要发生的是当我按下按钮1时,图像将显示在第二个视图中,当我返回到第一个视图并按下按钮2时,另一个图像将显示在视图中。我已经能够使用tableView实现这一点,但这并不是我想要设计我的设计的方式。

1 个答案:

答案 0 :(得分:0)

任何视图控制器都实现prepareForSegue,您可以覆盖此函数以将数据传递到segue的目标视图。

  1. 在故事板中为您的两个segue分配一个标识符,让我们说 button1 button2
  2. 在第一个视图控制器中覆盖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
        }
    }
    
  3. 在第二个视图控制器中,在viewDidLoad内,您可以根据在第2点设置的image属性设置UIImageView的图像。

    class SecondViewController: UIViewController {
        var image: UIImage!
        @IBOutlet var imageView: UIImageView!
    
        override viewDidLoad() {
            super.viewDidLoad()
    
            imageView.image = image
        }
    }
    
  4. 注意:请记住将第二个视图控制器的名称更改为您的名称。 我假设您的第一个视图控制器中有两个包含两个图像的属性,但您也可以在prepareForSegue中加载它们,或者只传递图像名称并在第二个视图控制器中加载图像。