使用来自另一个类的参数在viewcontroller中调用函数

时间:2017-05-30 07:52:16

标签: swift notificationcenter

我有一个名为CameraManager的类。它继承自UINavigationControllerDelegateUIImagePickerControllerDelegate

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继承UINavigationControllerDelegateUIImagePickerControllerDelegate

但我想在分开的课堂上做这件事。经过一些搜索,我找到了NotificationCenter,但对于像我这样的快速初学者来说这很复杂,并且swift 3中的资源很少,并且传递参数。

1 个答案:

答案 0 :(得分:1)

您可以将已打开的ViewController对象传递到CameraManager课程,并func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) openViewControllerObject.setImageToImageView(theImage: chosenImage) {。}}。