我有一个名为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作为完成处理程序。这里关闭将是最好的方法。 –
我很高兴能帮助解决您的问题。现在请标记并上传我的答案,以便对其他人有所帮助。 –