Ios 从modal ViewController演示UIImagePickerController

Ios 从modal ViewController演示UIImagePickerController,ios,swift,uiimagepickercontroller,modalviewcontroller,Ios,Swift,Uiimagepickercontroller,Modalviewcontroller,在我的故事板中有这样一部分: 所以我想要UserProfileController的礼物:UIViewController“МlППМфцц”,这是模态(位于图像顶部)UIImageViewController 我的代码: extension UserProfileController: UIImagePickerControllerDelegate, UINavigationControllerDelegate { @IBAction func imagePressed(_ send

在我的故事板中有这样一部分:

所以我想要UserProfileController的礼物:UIViewController“МlППМфцц”,这是模态(位于图像顶部)UIImageViewController

我的代码:

extension UserProfileController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    @IBAction func imagePressed(_ sender: Any) {
        let imagePickerController = UIImagePickerController()
        imagePickerController.delegate = self
        self.present(imagePickerController, animated: true, completion: nil)
    }

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        guard let image = info[UIImagePickerControllerOriginalImage] as? UIImage else {
            return
        }
        picker.dismiss(animated: true, completion: nil)
        userProfileImageView.image = image
    }
}
好的,出现了imagePickerController,但在我选择了image之后,我已经取消了这两个控制器(imagePickerController和parent-UserProfileController)

我做错了什么?谢谢


问题可能是我把“SideMenunigationController”显示为模态?(侧菜单框架文档中建议这样做)

尝试在类中创建UIImagePickerController引用(作为变量)


是否可以尝试将@IBAction放在扩展之外?已经这样做了,IBAction与声明类主体中的imagePicker:didFinish方法相同
// to choose an image from the Camera Roll
    fileprivate lazy var imagePicker: UIImagePickerController = {
        let picker: UIImagePickerController = UIImagePickerController()

        picker.allowsEditing = false
        picker.sourceType = .savedPhotosAlbum
        picker.delegate = self

        return picker
    }()