我有一個名爲CameraManager的類。它繼承自UINavigationControllerDelegate
和UIImagePickerControllerDelegate
。使用另一個類的參數在視圖控制器中調用函數
在func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
我想調用setImageInImageView(image:UIImage)
功能,它是在viewcontroller中,並將用戶拍攝的照片傳遞給它。
這是我在CameraManager類中的錯誤代碼。
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage
ViewController.setImageToImageView(theImage: chosenImage) // wrong code
}
我知道我可以設置照片以不同的方式,就像在我CameraManager類中創建一個出口的ImageView,或視圖控制器繼承UINavigationControllerDelegate
和UIImagePickerControllerDelegate
。
但我想在分離的類中做到這一點。經過一番搜索之後,我發現了NotificationCenter,但對於像我這樣的快速入門者來說這很複雜,並且在傳入參數的情況下,swift 3中的資源很少。
謝謝。我將ViewController傳遞給CameraManager初始化器,並將其設置爲CameraManager中的一個類型爲ViewController的變量,並且它可以工作。你能解釋一下使用通知中心的方式嗎? –
我對你的建議是不要爲此使用通知。相反,你可以使用closure作爲完成處理程序。這裏關閉將是最好的方法。 –
我很高興能幫助解決您的問題。現在請標記並上傳我的答案,以便對其他人有所幫助。 –