Ich versuche, mehr über das Delegatenmuster zu lernen. Ich habe eine App geschrieben, die auf die Kamerarolle des Benutzers zugreift, und ich möchte dieses Bild auf dem View-Controller anzeigen, nachdem der Benutzer das Bild ausgewählt hat. Hier ist, was ich bisher habe:Anzeige des ausgewählten Bildes auf dem Bildschirm mit UIIamgePickerControllerDelegate in Swift
import UIKit
class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet weak var imagePickerView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
// Delegate Methods
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
imagePickerView.image = image
}
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
self.dismiss(animated: true, completion: nil)
}
@IBAction func pickAnImage(_ sender: Any) {
let pickerController = UIImagePickerController()
present(pickerController, animated: true, completion: nil)
}
}
Die Kamera Roll erscheint wie erwartet und die Abbrechen-Tasten schließen das modale. Wenn Sie ein Bild auswählen, wird das Modal ebenfalls ausgeblendet, das Bild wird jedoch nicht auf dem Bildschirm angezeigt. Ich habe bestätigt, dass meine imagePickerController
korrigiert als Steckdose referenziert ist. Was vermisse ich?
Sie vermissen pickerController.delegate = Selbst vor der vorliegenden – Retterdesdialogs