前提・実現したいこと
DKImagePickerControllerを使って複数の画像を選択したあと、画面遷移がしたいです。
通常のUIImagePickerの場合、
発生している問題・エラーメッセージ
//写真が選択されたときに呼ばれるアクション func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { //ここで画面遷移 }
したら解決するんですが、DKImagePickerControllerを使用している場合、どのように記述したらよいのでしょうか・・・
DKImagePickerで取得した複数のImageを.fetchする際のfor-in文の中でSegue(画面遷移)を書いたら画面遷移自体はしてくれるんですが1枚目の画像を読み込んだタイミングで遷移するので、残りの画像のデータが付いてきません・・・
for-in(ループ)処理が終わったタイミングで遷移したいのですが、どこに書いたらいいのでしょうか・・・
@IBAction func CreateAlbumButton(_ sender: Any) { let dialog = UIAlertController(title: "アルバムの作成", message: nil, preferredStyle: .actionSheet) dialog.addAction(UIAlertAction(title: "キャンセル", style: .cancel, handler: nil)) dialog.addAction(UIAlertAction(title: "フォトライブラリから選択", style: .default) { (action) in if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) == true { let pickerController = DKImagePickerController() pickerController.maxSelectableCount = 20 //選択可能枚数をセット pickerController.sourceType = .photo //モードをライブラリモードに設定(/camera) pickerController.showsCancelButton = true //キャンセルボタンを有効化 pickerController.assetType = .allPhotos pickerController.didSelectAssets = { [unowned self] (assets: [DKAsset]) in for asset in assets { asset.fetchFullScreenImage(completeBlock: { (image, info) in self.albumimages.append(image!) print("画像をalbumimagesに格納") self.performSegue(withIdentifier: "goSecond", sender: nil) }) } } self.present(pickerController, animated: true){} } }) self.present(dialog, animated: true, completion: nil) //ダイアログを表示 }
補足情報(FW/ツールのバージョンなど)
XCODE11
Swift