[英]Pass an image between two already loaded view controllers
这可能是微不足道的,但我是Swift的新手,将不胜感激。
应用旨在修改图像。
我有3个ViewController:
我想将UIImage从“动作”移动到“预览”。
所有视图控制器已经打开。 操作和预览是UIScrollView的并排子级。 我不想再次打开它们或自动移动到它们。 我只想在Action中完成修改后在“预览”中更新图像。
我正在使用Swift 3.0和Xcode 8。
通常一次只能看到一个viewController,因此,在这种情况下,它们之间进行通信的典型方式是目标上的属性,并且通常是通过单独的协议来完成的。 例如,
protocol CanDisplayImage {
var imageToDisplay: UIImage? { get; set; }
}
然后,您的目标viewController将实现以下协议:
class MyPreviewController: UIViewController, CanDisplayImage {
var imageToDisplay: UIImage?
func viewDidLoad() {
theImageView.image = imageToDisplay
}
}
然后,您的源viewController导致到目标的segue,并在其
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let dest = segue.destination as? CanDisplayImage {
dest.imageToDisplay = theImageToPreview
}
}
您如何选择导致segue的方法可以不同。 最常见的是将ctrl从按钮或源viewController中的任何内容拖动到目标viewController中的任何位置。
请注意,我尚未检查上面的代码是否实际编译,因此我可能会有一些错别字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.