👌

UIImagePickerControllerDelegateのdidFinishPickingMediaWithInfoが呼び出されない

2022/03/03に公開

Xcode13で確認

    // MARK: ボタン押下時の処理

    @objc func didTapPasteClipButton() {
        guard let model = myModel else { return }
        let createViewView = self.view as! CreateViewView
        createViewView.deckCodeLabel.text = UIPasteboard.general.string
    }
    
extension CreateViewViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
         let chosenImage = info[UIImagePickerController.InfoKey.originalImage] as! UIImage
         dismiss(animated:true, completion: nil)
     }
}

このように記載して、Delegateメソッドが動作しなかったので調査しました。
最新の書き方が変わっていた為、動作しませんでした。

修正後

extension CreateViewViewController: UIImagePickerControllerDelegate & UINavigationControllerDelegate{
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
         let chosenImage = info[UIImagePickerController.InfoKey.originalImage] as! UIImage
         dismiss(animated:true, completion: nil)
     }
}

なんやねん、LOVE & PEACE みたいな書き方…
これ同様の件ありそうですね、他でも

とりあえずこれで呼び出されるようになりました。

Discussion