通常僅存在一個的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
}
}
你如何選擇導致賽格可以用不同的方法完成。最常見的做法是從按鈕或源ViewController中的任何內容到目標viewController中的任何位置進行拖動。
請注意,我沒有檢查上面的代碼實際編譯,所以我可能有一些錯別字。
如果我錯誤地理解了您的問題,請糾正我, Action and Preview是兩個視圖控制器,您正在預覽控制器中預覽圖像,預覽後要將圖像移至動作視圖控制器。那是你要的嗎? – Janmenjaya
您當前IB設計的圖片可能有助於理解您的需求。 – Michael
有兩種方法可以使用,準備將segue傳遞給視圖控制器。或者你可以使用單例類來保存圖像。 – Vinodh