从imagepicker返回后,viewcontroller中的所有内容都消失了?

问题描述 投票:0回答:2

当我试图在我的应用程序中实现所有uiimagepickerview方法时,我的视图控制器(在选择图像后)上没有显示任何内容?它应该有我的文字字段然而它们都“消失了”

这是我的代码

@IBAction func registerUserProfileImageSelectButton(_ sender: UIButton) {
    imagePicker.allowsEditing = false
    imagePicker.sourceType = .photoLibrary
    present(imagePicker, animated: true, completion: nil)
}


func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
        registerUserProfileImage.contentMode = .scaleAspectFit
        registerUserProfileImage.image = pickedImage
    }
    dismiss(animated: true, completion: nil)
}


func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
    dismiss(animated: true, completion: nil)
}

我怀疑在我的解雇方法中可能会有所作为,但我不太确定

感谢您的帮助!

ios swift uiimagepickercontroller
2个回答
0
投票
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
    dismiss(animated: true, completion: nil)
}

问题是你试图解雇当前的视图控制器,而不是图像选择器控制器。请用:

imagePicker.dismiss(animated: true, completion: nil)

这应该工作!


0
投票

这对我很有用,你可以试试这段代码:

import UIKit

class ViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate {

    @IBOutlet weak var imagePickerImg: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    @IBAction func imagePicker(_ sender: Any) {
        let imagePicker = UIImagePickerController()
        imagePicker.sourceType = .photoLibrary
        imagePicker.delegate = self // you need to set a delegate to your image picker here 
        //to get selected ( edited ) portion
        imagePicker.allowsEditing = true
        present(imagePicker, animated: true, completion: nil)
    }

     public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        print(info)

//        let img = info[UIImagePickerControllerOriginalImage] as! UIImage

        // if you keep editing true
        let img = info[UIImagePickerControllerEditedImage] as! UIImage
        imagePickerImg.image = img
        dismiss(animated: true, completion: nil)
    }

    public func imagePickerControllerDidCancel(_ picker: UIImagePickerController){
        print("Cancel Press")
        dismiss(animated: true, completion: nil)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}
© www.soinside.com 2019 - 2024. All rights reserved.