es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

IBOutlet no está siendo reconocido como un UIImageView.

Estoy tratando de permitir que los usuarios tomen fotos cuando se hace clic en el botón de acción. He agregado un UIImageView en el Storyboard que se encuentra dentro de mi Controlador de vista. He establecido el nombre de este control como imageView, pero cuando implemento imageView.image = image, me da un error “No se puede encontrar ‘imageView’ en el ámbito”. También he intentado establecer esto como self.imageView = image y obtengo el error “No se puede encontrar self en el ámbito”. No estoy seguro de por qué mi imageView, que está conectado al @IBOutlet, no está siendo encontrado?

import UIKit

class HomeScreenViewController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
     @IBOutlet weak var imageView: UIImageView!
     var button: UIButton! {
         imageView.backgroundColor = .secondarySystemBackground
        self.button.backgroundColor = .systemBlue

    }
    override func viewDidLoad() {
        super.viewDidLoad()

    }
    @IBAction func didTapButton(){
        let picker = UIImagePickerController()
        picker.sourceType = .camera
        picker.delegate = self
        present(picker, animated: true)
    }
}

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

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any])      {
    picker.dismiss(animated: true, completion: nil)

    guard let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage  else {
        return
    }

    imageView.image = image

}
Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que falta la línea imageView.image = image en la función didTapButton. Deberías agregar esta línea después de la línea picker.dismiss. Esto debería permitir que la imagen se establezca en la imageView cuando se toca el botón.

    @IBAction func didTapButton(){
        let picker = UIImagePickerController()
        picker.sourceType = .camera
        picker.delegate = self
        present(picker, animated: true)
    }
    
    func imagePickerControllerDidCancel(_ picker: UIImagePickerController){
        picker.dismiss(animated: true, completion: nil)
    }
    
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any])      {
        picker.dismiss(animated: true, completion: nil)
    
        guard let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage  else {
            return
        }
    
        imageView.image = image // Agrega esta línea
    
    }
    

Comments are closed.