这可能是微不足道的,但我是Swift的新手并希望得到任何帮助。
应用程序旨在修改图像。
我有3个ViewControllers:
我想将UIImage从Action移动到预览。
所有视图控制器都已打开。操作和预览是UIScrollView的并排子项。我不想再打开它们或自动移动它们。我只想在Action中完成修改后更新预览中的图像。
我正在使用Swift 3.0和Xcode 8。
答案 0 :(得分:0)
通常一次只能看到一个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可以在不同的方式中完成。最常见的是从按钮或源viewController中的任何内容按住Ctrl键拖动到目标viewController中的任何位置。
请注意,我没有检查上面的代码实际编译,所以我可能会有一些拼写错误。