我有一个名为CameraManager的类。它继承自UINavigationControllerDelegate
和UIImagePickerControllerDelegate
。
在func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
中,我想调用viewcontroller中的setImageInImageView(image:UIImage)
函数,并将用户拍摄的照片传递给它。
这是我在CameraManager类中的错误代码。
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage
ViewController.setImageToImageView(theImage: chosenImage) // wrong code
}
我知道我可以用不同的方式设置照片,比如在我的CameraManager类中为imageview创建一个插座,或者viewcontroller继承UINavigationControllerDelegate
和UIImagePickerControllerDelegate
。
但我想在分开的课堂上做这件事。经过一些搜索,我找到了NotificationCenter,但对于像我这样的快速初学者来说这很复杂,并且swift 3中的资源很少,并且传递参数。
答案 0 :(得分:1)
您可以将已打开的ViewController
对象传递到CameraManager
课程,并func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
openViewControllerObject.setImageToImageView(theImage: chosenImage)
{。}}。