検証環境:
Xcode 11.4
Swift 5.2
Swift で UIImagePickerController を使って写真を読み込むための最小コードサンプルです。
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } @IBAction func handleButton(_ sender: UIButton) { guard UIImagePickerController.isSourceTypeAvailable(.photoLibrary) else { return } let picker = UIImagePickerController() picker.sourceType = .photoLibrary // 他に .camera, .savedPhotosAlbum がある picker.delegate = self //picker.allowsEditing = true // 写真選択後に正方形にクロップする編集画面に遷移するか present(picker, animated: true) } } extension ViewController: UIImagePickerControllerDelegate & UINavigationControllerDelegate { func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) { print("didFinishPickingMediaWithInfo. ", info) picker.dismiss(animated: true) { if let image = info[.originalImage] as? UIImage { // do stuff } } } func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { print("imagePickerControllerDidCancel.") picker.dismiss(animated: true) } }
Info.plist への権限追加については、UIImagePickerController によるフォトライブラリからの読み込みのみの場合は特に不要なようです。
Note
When using the UIImagePickerController to bring up the user's photo library, your app doesn't need to request permission explicitly.
https://developer.apple.com/documentation/photokit/requesting_authorization_to_access_photos