使用来自另一个 class 的参数调用 viewcontroller 中的函数
Call a function in viewcontroller with parameter from another class
我有一个 class 名为 CameraManager。它继承自 UINavigationControllerDelegate
和 UIImagePickerControllerDelegate
。
在func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
中我想调用viewcontroller中的setImageInImageView(image:UIImage)
函数并将用户拍摄的照片传递给它。
这是我在 CameraManager 中的错误代码 class。
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage
ViewController.setImageToImageView(theImage: chosenImage) // wrong code
}
我知道我可以用不同的方式设置照片,比如在我的 CameraManager class 中创建一个 imageview 出口,或者 viewcontroller 继承 UINavigationControllerDelegate
和 UIImagePickerControllerDelegate
。
但我想在单独的 class 中执行此操作。经过一些搜索,我找到了 NotificationCenter,但是对于像我这样的 swift 初学者来说它很复杂,而且 swift 3 中带有传递参数的资源很少。
您可以将打开的 ViewController
对象传递给 CameraManager
class,在 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
中您可以 openViewControllerObject.setImageToImageView(theImage: chosenImage)
.
我有一个 class 名为 CameraManager。它继承自 UINavigationControllerDelegate
和 UIImagePickerControllerDelegate
。
在func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
中我想调用viewcontroller中的setImageInImageView(image:UIImage)
函数并将用户拍摄的照片传递给它。
这是我在 CameraManager 中的错误代码 class。
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage
ViewController.setImageToImageView(theImage: chosenImage) // wrong code
}
我知道我可以用不同的方式设置照片,比如在我的 CameraManager class 中创建一个 imageview 出口,或者 viewcontroller 继承 UINavigationControllerDelegate
和 UIImagePickerControllerDelegate
。
但我想在单独的 class 中执行此操作。经过一些搜索,我找到了 NotificationCenter,但是对于像我这样的 swift 初学者来说它很复杂,而且 swift 3 中带有传递参数的资源很少。
您可以将打开的 ViewController
对象传递给 CameraManager
class,在 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
中您可以 openViewControllerObject.setImageToImageView(theImage: chosenImage)
.