imagepickerviewcontroller 를 사용할려고 하였지만 iOS 14 가 출시되면서 등장한 PHPickerVIEWCONTROLLER를 사용해 보면 좋을 것 같아 사용해 보았다.
1-1 . 초기화
configuration을 이용해 PHPickerViewController를 초기화 해주어야한다.
private lazy var imagePicker : PHPickerViewController = {
var config = PHPickerConfiguration()
config.selectionLimit = 5
config.filter = .any(of: [.livePhotos, .images])
let pickerVC = PHPickerViewController(configuration: config)
pickerVC.delegate = self
return pickerVC
}()
최대 이미지 선택개수와 , 선택할수 있는 컨텐츠의 종류를 설정해 줄 수 있다.
특정 이벤트에서 이미지를 선택할수 있는 화면(imagePicker )을 띄워주고 delegate를 구현하면된다.
extension RegistItemViewController : UINavigationControllerDelegate, PHPickerViewControllerDelegate{
func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
picker.dismiss(animated: true)
var providers :[NSItemProvider?] = results.map{$0.itemProvider}
providers.insert(nil, at: 0)
self.imageListSubject.onNext(providers)
}
}