我跟着这个tutorial,一切顺利,直到我尝试在同一个viewController上使用两个不同的imageView并根据需要更改两张图片。
我尝试使用发件人知道哪一个称为相机胶卷:
// --MARK: Image picker delegate
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!, sender: AnyObject) {
backgroundAccount.image = image
self.dismissViewControllerAnimated(true, completion: nil);
}
但那根本没有用。委托方法根本没有被调用。
我想和FaceBook一样做个人资料图片和背景图片。
有什么想法吗?
编辑:
这将更新背景:
// --MARK: Image picker delegate
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) {
backgroundAccount.image = image
self.dismissViewControllerAnimated(true, completion: nil);
}
这将更新个人资料图片:
// --MARK: Image picker delegate
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) {
profile.image = image
self.dismissViewControllerAnimated(true, completion: nil);
}
我可以在我的代表中更改我们不知道的内容。
答案 0 :(得分:1)
您是否已将UIImagePickerController实例的delegate
属性分配给视图控制器?您必须在imagePickerController:didFinishPickingImage:
上收到委托回电。
编辑:发布OP编辑:您需要在课程级别跟踪bool
,并在出示图像选择器之前设置是否。例如,在您呈现个人资料图片的选择器视图之前,声明名为bool
的{{1}}并将其设置为setProfilePicture
。这可能是一个特定的按钮点击或让你知道在个人资料上设置图片的东西。现在,将照片设置为true
,如下所示:
didFinishPickingImage
答案 1 :(得分:0)
此委托在objc中已弃用,并且不会出现在swift标头中。您应该尝试使用此委托optional public func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject])
你可以从这里找到图像:
let image = info[UIImagePickerControllerOriginalImage] as! UIImage
答案 2 :(得分:0)
试试这个;
为imagePicker控制器分配标签,当触发IBAction调用摄像机时,获取sender.tag并将其分配给公共变量。在我的例子中,我要求它tagPictureSource。
将您的视图控制器扩展到delgate UIImagePickerControllerDelegate 并使用以下内容。
extension imageViewController : UIImagePickerControllerDelegate {
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info:[String: AnyObject]) {
var temp: UIImage!
temp = info[UIImagePickerControllerOriginalImage] as! UIImage
if (tagPictureSource == 1 ) {
imageview1.image = temp
} else if (tagPictureSource == 2 ) {
imageview2.image = temp
} else if (tagPictureSource == 3) {
imageview3.image = temp
}
self.dismissViewControllerAnimated(true, completion: nil)
}
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
self.dismissViewControllerAnimated(false, completion: nil)
}
}
希望它有所帮助!