繁体   English   中英

如何将图像视图及其属性从一个视图控制器传递给另一个视图控制器?

[英]How do I pass an image view and its properties from one view controller to another?

因此,我在一个viewcontroller.swift文件中有一个图像视图,该文件每次询问问题时都会生成一个随机的背景图像(这是一个测验应用程序)。 当用户得到正确的答案时,我希望当问题被问到时,从第一个视图控制器生成的随机背景图像与在正确回答答案后显示的下一个视图控制器的背景图像相同。 如何确保每次正确回答问题后,两个背景图像视图都显示相同的随机图像? 这是我处理背景图片的代码片段。

class ViewController : UIViewController

@IBOutlet weak var backgroundImage: UIImageView!

let backgroundImages = //array containing all the images


//random image generator function
func randomImage() {
    index = Int(arc4random_uniform(UInt32(backgroundImages.count)))
    backgroundImage.image = backgroundImages[index]
}

现在,如果我希望图像视图始终在不同的类(类SecondViewController:UIViewController)中显示randomImage函数产生的相同背景图像,例如,从原始视图控制器获取数据的最佳方法是什么? (如果您根据问题单击正确的答案按钮,它将转到新的“正确的答案”视图控制器,我希望它具有与以前的视图控制器相同的背景图像)。

首先,您必须存储将在func randomImage()中设置的背景图像索引 所以你必须声明一个类变量

class ViewController : UIViewController

@IBOutlet weak var backgroundImage: UIImageView!
let randomIndex:Int!
let backgroundImages = //array containing all the images


//random image generator function 
func randomImage() {
    // So now you can pass this value to next viewController.
    randomIndex = Int(arc4random_uniform(UInt32(backgroundImages.count)))
    backgroundImage.image = backgroundImages[randomIndex]

}

您可以使用情节提要segue并与prepare语句共享图像,否则可以创建第二个vc的实例,然后需要初始化一个图像视图,而不是需要从第一个VC设置该图像视图并推送该vc。

制作UIImageView的子类并使用它。

您可以将图像另存为png在用户文档文件夹中,并根据需要重新加载。 请参阅我最近对一个不相关问题的回答:

将图像保存到“用户文档”文件夹

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM