从库中选择图像并不会调用" didFinishPickingImage"功能 - 斯威夫特

时间:2016-02-17 16:33:48

标签: ios objective-c iphone swift

我有一个UIImagePickerController,可以选择库。

当调用accessLibrary按钮时,它会提示另一个源类型为.PhotoLibrary的UIImagePickerController。

func accessLibrary(sender: UIButton!) {
    NSLog("access library")
    choseFromLibrary = true
    self.libraryPicker = UIImagePickerController()
    self.libraryPicker!.allowsEditing = false
    self.libraryPicker!.sourceType = .PhotoLibrary

    self.presentViewController(self.libraryPicker!, animated: true, completion: nil)
}

这一切都运作良好,但当用户选择照片时,我想将该图像传递给视图,然后在屏幕上显示该视图。

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
    let metadata = info[UIImagePickerControllerMediaMetadata] as? NSDictionary
    var image = info[UIImagePickerControllerOriginalImage] as? UIImage
    if (image != nil) {
        if (choseFromLibrary) {
            let cnfrmImgView = ConfirmImageView.init(image: image!)
            self.view.addSubview(cnfrmImgView)
        }
        else {
            if (frontFacing) {
                image! = UIImage(CGImage: image!.CGImage!, scale: 1.0, orientation: .LeftMirrored)
            }
            let cnfrmImgView = ConfirmImageView.init(image: image!)
            self.view.addSubview(cnfrmImgView)
        }
    }
}

如果使用相机拍摄图像但不使用图像库,则上述功能有效。

当用户从库中选择照片时,库选择器控制器只会自行关闭并且视图不会显示。

我运行NSLog("here")来检查从库中选择时是否调用didFinishPickingImageWithInfo函数,实际上并非如此。

2 个答案:

答案 0 :(得分:3)

didFinishPickingImageWithInfo是委托消息(UIImagePickerControllerDelegate)。但问题是,你没有给你的图像选择器delegate!因此,它没有人发送委托消息。

答案 1 :(得分:0)

如果你想实现类似于Instagram的图像选择器而不是尝试这个

Image Picker like Instagram