仅关闭ImagePicker并将图像传递给ScrollViewController
问题描述:
我有一个ImagePicker
,在ScrollViewController
呈现(1)后显示。仅关闭ImagePicker并将图像传递给ScrollViewController
问:
一旦图像从
ImagePicker
摘下来,我怎么解雇 只是的ImagePicker
使得ScrollViewController
显示,然后通过被拍摄到ScrollViewController
?
(1)呈现ScrollViewController
和ImagePicker
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("ScrollViewControllerID") as! ScrollViewController
self.presentViewController(vc, animated: true) {
let imagePicker = MyImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = .PhotoLibrary
imagePicker.allowsEditing = false
imagePicker.modalTransitionStyle = UIModalTransitionStyle.CoverVertical
vc.presentViewController(imagePicker, animated: true, completion: nil)
}
处理ImagePicker
它是封闭
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let myImage = info[UIImagePickerControllerOriginalImage] as! UIImage
//How to send myImage to the ScrollViewController and close ImagePicker?
}
答
MyImagePickerController后
class MyImagePickerController: ... {
var controller:ScrollViewController!
convenience init(controller: ScrollViewController) {
self.init()
self.controller = controller
}
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let myImage = info[UIImagePickerControllerOriginalImage] as! UIImage
controller.imageName = myImage
self.dismissViewControllerAnimated(true, completion: nil)
}
这是你如何运用它
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("ScrollViewControllerID") as! ScrollViewController
self.presentViewController(vc, animated: true) {
let imagePicker = MyImagePickerController(controller: vc)
imagePicker.delegate = self
imagePicker.sourceType = .PhotoLibrary
imagePicker.allowsEditing = false
imagePicker.modalTransitionStyle = UIModalTransitionStyle.CoverVertical
vc.presentViewController(imagePicker, animated: true, completion: nil)
}
谢谢,我要在此一展身手。我能更好地理解这部分究竟做了什么? '方便初始化(控制器:ScrollViewController){self.controller =控制器}' – user4806509
它提供了你自己的自定义初始化程序,一个'便利的初始化程序',它可以让你接受你自己的变量。然后用这些vrariables你可以访问其他类的东西。所以你把前一个控制器作为一个变量,然后你可以使用'controller.items'或'controller.myImage'来访问前一个控制器的项目。合理? – impression7vx
Thanks @ impression7vx但是,代码的哪一部分会取消“ImagePicker”,但会在屏幕上保留“ScrollViewController”? – user4806509